495c17c6ebfc6ca2f809af0a38a2dc60a644bed3
[openafs-wiki.git] / AFSLore / OpenAFSPioctlInterfaceDoc.mdwn
1 <div>
2   <ul>
3     <li><a href="#PSetACL">PSetACL</a></li>
4     <li><a href="#PGetACL">PGetACL</a></li>
5     <li><a href="#PSetTokens">PSetTokens</a></li>
6     <li><a href="#PGetVolumeStatus">PGetVolumeStatus</a></li>
7     <li><a href="#PSetVolumeStatus">PSetVolumeStatus</a></li>
8     <li><a href="#PFlush">PFlush</a></li>
9     <li><a href="#PBogus  PNoop">PBogus &amp; PNoop</a></li>
10     <li><a href="#PGetTokens">PGetTokens</a></li>
11     <li><a href="#PUnlog">PUnlog</a></li>
12     <li><a href="#PCheckServers">PCheckServers</a></li>
13     <li><a href="#PCheckVolNames">PCheckVolNames</a></li>
14     <li><a href="#PCheckAuth">PCheckAuth</a></li>
15     <li><a href="#PFindVolume">PFindVolume</a></li>
16     <li><a href="#PViceAccess">PViceAccess</a></li>
17     <li><a href="#PGetFID">PGetFID</a></li>
18     <li><a href="#PSetCacheSize">PSetCacheSize</a></li>
19     <li><a href="#PRemoveCallback">PRemoveCallback</a></li>
20     <li><a href="#PNewCell">PNewCell</a></li>
21     <li><a href="#PListCells">PListCells</a></li>
22     <li><a href="#PRemoveMount">PRemoveMount</a></li>
23     <li><a href="#PNewStatMount">PNewStatMount</a></li>
24     <li><a href="#PGetFileCell">PGetFileCell</a></li>
25     <li><a href="#PGetWSCell">PGetWSCell</a></li>
26     <li><a href="#PMariner">PMariner</a></li>
27     <li><a href="#PGetUserCell">PGetUserCell</a></li>
28     <li><a href="#PVenusLogging">PVenusLogging</a></li>
29     <li><a href="#PGetCellStatus">PGetCellStatus</a></li>
30     <li><a href="#PSetCellStatus">PSetCellStatus</a></li>
31     <li><a href="#PFlushVolumeData">PFlushVolumeData</a></li>
32     <li><a href="#PSetSysName">PSetSysName</a></li>
33     <li><a href="#PExportAfs">PExportAfs</a></li>
34     <li><a href="#PGetCacheSize">PGetCacheSize</a></li>
35     <li><a href="#PGetVnodeXStatus">PGetVnodeXStatus</a></li>
36     <li><a href="#PSetSPrefs33">PSetSPrefs33</a></li>
37     <li><a href="#PGetSPrefs">PGetSPrefs</a></li>
38     <li><a href="#PGag">PGag</a></li>
39     <li><a href="#PTwiddleRx">PTwiddleRx</a></li>
40     <li><a href="#PSetSPrefs">PSetSPrefs</a></li>
41     <li><a href="#PStoreBehind">PStoreBehind</a></li>
42     <li><a href="#PGCPAGs">PGCPAGs</a></li>
43     <li><a href="#PGetInitParams">PGetInitParams</a></li>
44     <li><a href="#PGetCPrefs">PGetCPrefs</a></li>
45     <li><a href="#PSetCPrefs">PSetCPrefs</a></li>
46     <li><a href="#PFlushMount">PFlushMount</a></li>
47     <li><a href="#PRxStatProc">PRxStatProc</a></li>
48     <li><a href="#PRxStatPeer">PRxStatPeer</a></li>
49     <li><a href="#PGetRxkcrypt">PGetRxkcrypt</a></li>
50     <li><a href="#PSetRxkcrypt">PSetRxkcrypt</a></li>
51     <li><a href="#PSetClientContext">PSetClientContext</a></li>
52     <li><a href="http://escort-models.com/en-index.html">ukraine escort</a></li>
53   </ul>
54 </div>
55
56 ## <a name="PSetACL"></a> [[PSetACL]]
57
58 <dl>
59   <dt><strong>Group</strong></dt>
60   <dd> V </dd>
61   <dt><strong>Function</strong></dt>
62   <dd> VIOCSETAL (1) - Set access control list </dd>
63   <dt><strong>Arguments</strong></dt>
64   <dd> the ACL being set </dd>
65   <dt><strong>Outcome</strong></dt>
66   <dd> Changed ACL, via direct writing to the wire </dd>
67 </dl>
68
69 **Errors**
70
71 - EINVAL - if some of the standard arguments aren't set
72
73 <dl>
74   <dt><strong>Side Effects</strong></dt>
75   <dd> none listed </dd>
76 </dl>
77
78 ## <a name="PGetACL"></a> [[PGetACL]]
79
80 <dl>
81   <dt><strong>Group</strong></dt>
82   <dd> V </dd>
83   <dt><strong>Function</strong></dt>
84   <dd> VIOCGETAL (2) - Get access control list </dd>
85   <dt><strong>Arguments</strong></dt>
86   <dd> none </dd>
87   <dt><strong>Outcome</strong></dt>
88   <dd> Obtain the ACL, based on file ID </dd>
89 </dl>
90
91 **Errors**
92
93 - EINVAL - if some of the standard arguments aren't set
94 - ERANGE - if the vnode of the file id is too large
95 - return -1 - if getting the ACL failed
96
97 <dl>
98   <dt><strong>Side Effects</strong></dt>
99   <dd> 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 </dd>
100 </dl>
101
102 ## <a name="PSetTokens"></a> [[PSetTokens]]
103
104 <dl>
105   <dt><strong>Group</strong></dt>
106   <dd> V </dd>
107   <dt><strong>Function</strong></dt>
108   <dd> VIOCSETTOK (3) - Set authentication tokens </dd>
109   <dt><strong>Arguments</strong></dt>
110   <dd> the krb tickets from which to set the afs tokens </dd>
111   <dt><strong>Outcome</strong></dt>
112   <dd> Set the Tokens for a specific cell name, unless there is none set, then default to primary </dd>
113 </dl>
114
115 **Errors**
116
117 - EINVAL - if the ticket is either too long or too short
118 - EIO - if the AFS initState is below 101
119 - ESRCH - if the cell for which the Token is being set can't be found
120
121 <dl>
122   <dt><strong>Side Effects</strong></dt>
123   <dd> none listed </dd>
124 </dl>
125
126 ## <a name="PGetVolumeStatus"></a> [[PGetVolumeStatus]]
127
128 <dl>
129   <dt><strong>Group</strong></dt>
130   <dd> V </dd>
131   <dt><strong>Function</strong></dt>
132   <dd> VIOCGETVOLSTAT (4) - Get volume status </dd>
133   <dt><strong>Arguments</strong></dt>
134   <dd> none </dd>
135   <dt><strong>Outcome</strong></dt>
136   <dd> The staus of a volume(based on the FID of the volume), or an offline message/motd </dd>
137 </dl>
138
139 **Errors**
140
141 - EINVAL: if some of the default arguments don't exist
142
143 <dl>
144   <dt><strong>Side Effects</strong></dt>
145   <dd> none listed </dd>
146 </dl>
147
148 ## <a name="PSetVolumeStatus"></a> [[PSetVolumeStatus]]
149
150 <dl>
151   <dt><strong>Group</strong></dt>
152   <dd> V </dd>
153   <dt><strong>Function</strong></dt>
154   <dd> VIOCSETVOLSTAT (5) - Set volume status </dd>
155   <dt><strong>Arguments</strong></dt>
156   <dd> values to set the status at, offline message, message of the day, volume name, minimum quota, maximum quota </dd>
157   <dt><strong>Outcome</strong></dt>
158   <dd> Set the status of a volume, including any offline messages, a minimum quota, and a maximum quota </dd>
159 </dl>
160
161 **Errors**
162
163 - EINVAL - if some of the default arguments don't exist
164 - EROFS - if the volume is read only, or a backup volume
165 - ENODEV - if the volume can't be accessed
166 - [[E2BIG]] - if the volume name, offline message, and motd are too big
167
168 <dl>
169   <dt><strong>Side Effects</strong></dt>
170   <dd> none listed </dd>
171 </dl>
172
173 ## <a name="PFlush"></a> PFlush
174
175 <dl>
176   <dt><strong>Group</strong></dt>
177   <dd> V </dd>
178   <dt><strong>Function</strong></dt>
179   <dd> VIOCFLUSH (6) - Invalidate cache entry </dd>
180   <dt><strong>Arguments</strong></dt>
181   <dd> none </dd>
182   <dt><strong>Outcome</strong></dt>
183   <dd> Flush any information the cache manager has on an entry </dd>
184 </dl>
185
186 **Errors**
187
188 - EINVAL - if some of the initial arguments don't exist
189
190 <dl>
191   <dt><strong>Side Effects</strong></dt>
192   <dd> none listed </dd>
193 </dl>
194
195 ## <a name="PBogus  PNoop"></a> PBogus &amp; PNoop
196
197 <dl>
198   <dt><strong>Group</strong></dt>
199   <dd> V </dd>
200   <dt><strong>Function</strong></dt>
201   <dd> VIOCSTAT (7) - Get file status </dd>
202 </dl>
203
204 ----
205
206 <dl>
207   <dt><strong>Group</strong></dt>
208   <dd> V </dd>
209   <dt><strong>Function</strong></dt>
210   <dd> VIOCGETTIME (13) - Make gettime call (historic) </dd>
211 </dl>
212
213 ----
214
215 <dl>
216   <dt><strong>Group</strong></dt>
217   <dd> V </dd>
218   <dt><strong>Function</strong></dt>
219   <dd> VIOCPREFETCH (15) - Pre-fetch a file </dd>
220 </dl>
221
222 ----
223
224 <dl>
225   <dt><strong>Group</strong></dt>
226   <dd> V </dd>
227   <dt><strong>Function</strong></dt>
228   <dd> VIOCNOP (16) - No-op (historic) </dd>
229 </dl>
230
231 ----
232
233 <dl>
234   <dt><strong>Group</strong></dt>
235   <dd> V </dd>
236   <dt><strong>Function</strong></dt>
237   <dd> VIOCENGROUP (17) - Enable group access (historic) </dd>
238 </dl>
239
240 ----
241
242 <dl>
243   <dt><strong>Group</strong></dt>
244   <dd> V </dd>
245   <dt><strong>Function</strong></dt>
246   <dd> VIOCDISGROUP (18) - Disable group access (historic) </dd>
247 </dl>
248
249 ----
250
251 <dl>
252   <dt><strong>Group</strong></dt>
253   <dd> V </dd>
254   <dt><strong>Function</strong></dt>
255   <dd> VIOCLISTGROUPS (19) - List enabled and disabled groups (historic) </dd>
256 </dl>
257
258 ----
259
260 <dl>
261   <dt><strong>Group</strong></dt>
262   <dd> V </dd>
263   <dt><strong>Function</strong></dt>
264   <dd> VIOC_FPRIOSTATUS (57) - arla: set file 'prio' </dd>
265 </dl>
266
267 ----
268
269 <dl>
270   <dt><strong>Group</strong></dt>
271   <dd> V </dd>
272   <dt><strong>Function</strong></dt>
273   <dd> VIOC_FHGET (58) - arla: fallback getfh </dd>
274 </dl>
275
276 ----
277
278 <dl>
279   <dt><strong>Group</strong></dt>
280   <dd> V </dd>
281   <dt><strong>Function</strong></dt>
282   <dd> VIOC_FHOPEN (59) - arla: fallback fhopen </dd>
283 </dl>
284
285 ----
286
287 <dl>
288   <dt><strong>Group</strong></dt>
289   <dd> V </dd>
290   <dt><strong>Function</strong></dt>
291   <dd> VIOC_XFSDEBUG (60) - arla: controls xfsdebug </dd>
292 </dl>
293
294 ----
295
296 <dl>
297   <dt><strong>Group</strong></dt>
298   <dd> V </dd>
299   <dt><strong>Function</strong></dt>
300   <dd> VIOC_ARLADEBUG (61) - arla: controls arla debug </dd>
301 </dl>
302
303 ----
304
305 <dl>
306   <dt><strong>Group</strong></dt>
307   <dd> V </dd>
308   <dt><strong>Function</strong></dt>
309   <dd> VIOC_AVIATOR (62) - arla: debug interfac </dd>
310 </dl>
311
312 ----
313
314 <dl>
315   <dt><strong>Group</strong></dt>
316   <dd> V </dd>
317   <dt><strong>Function</strong></dt>
318   <dd> VIOC_XFSDEBUG_PRINT (63) - arla: print xfs status </dd>
319 </dl>
320
321 ----
322
323 <dl>
324   <dt><strong>Group</strong></dt>
325   <dd> V </dd>
326   <dt><strong>Function</strong></dt>
327   <dd> VIOC_CALCULATE_CACHE (64) - arla: force cache check </dd>
328 </dl>
329
330 ----
331
332 <dl>
333   <dt><strong>Group</strong></dt>
334   <dd> V </dd>
335   <dt><strong>Function</strong></dt>
336   <dd> VIOC_BREAKCELLBACK (65) - arla: break callback </dd>
337 </dl>
338
339 ----
340
341 <dl>
342   <dt><strong>Group</strong></dt>
343   <dd> V </dd>
344   <dt><strong>Function</strong></dt>
345   <dd> VIOCWAITFOREVER (23) - Wait for dead servers forever (historic) </dd>
346 </dl>
347
348 ## <a name="PGetTokens"></a> [[PGetTokens]]
349
350 <dl>
351   <dt><strong>Group</strong></dt>
352   <dd> V </dd>
353   <dt><strong>Function</strong></dt>
354   <dd> VIOCGETTOK (8) - Get authentication tokens </dd>
355   <dt><strong>Arguments</strong></dt>
356   <dd> An integer that corresponds to a user id, which in turn corresponds to a token </dd>
357   <dt><strong>Outcome</strong></dt>
358   <dd> 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 </dd>
359 </dl>
360
361 **Errors**
362
363 - EIO - if the afs daemon hasn't started yet
364 - EDOM - if the input parameter is out of the bounds of the available tokens
365 - ENOTCONN - if there aren't tokens for this cell
366
367 <dl>
368   <dt><strong>Side Effects</strong></dt>
369   <dd> none listed, although it's a weird interface (from comments in code) </dd>
370 </dl>
371
372 ## <a name="PUnlog"></a> PUnlog
373
374 <dl>
375   <dt><strong>Group</strong></dt>
376   <dd> V </dd>
377   <dt><strong>Function</strong></dt>
378   <dd> VIOCUNLOG (9) - Invalidate tokens </dd>
379   <dt><strong>Arguments</strong></dt>
380   <dd> none </dd>
381   <dt><strong>Outcome</strong></dt>
382   <dd> remove tokens from a user, specified by a user id </dd>
383 </dl>
384
385 **Errors**
386
387 - EIO - if the afs daemon hasn't started yet
388
389 <dl>
390   <dt> $ <strong>Side Effects</strong></dt>
391   <dd> set's the token's time to 0, which then causes it to be removed </dd>
392 </dl>
393
394 //////////////////////////////////////////
395
396 <dl>
397   <dt><strong>Group</strong></dt>
398   <dd> V </dd>
399   <dt><strong>Function</strong></dt>
400   <dd> VIOCUNPAG (21) - Invalidate PAG </dd>
401 </dl>
402
403 ///////////////////////////////////////// Unlog is the same as un-pag in [[OpenAFS]]
404
405 ## <a name="PCheckServers"></a> [[PCheckServers]]
406
407 <dl>
408   <dt><strong>Group</strong></dt>
409   <dd> V </dd>
410   <dt><strong>Function</strong></dt>
411   <dd> VIOCCKSERV (10) - Check that servers are up </dd>
412   <dt><strong>Arguments</strong></dt>
413   <dd> The name of the cell that the servers will be a part of. </dd>
414   <dt><strong>Outcome</strong></dt>
415   <dd> Either a fast check (where it doesn't contact servers) or a local check (checks local cell only) </dd>
416 </dl>
417
418 **Errors**
419
420 - EIO - if the afs daemon hasn't started yet
421 - EACCES - if the user doesn't have super-user credentials
422 - ENOENT - if we are unable to obtain the cell
423
424 <dl>
425   <dt><strong>Side Effects</strong></dt>
426   <dd> none listed </dd>
427 </dl>
428
429 ## <a name="PCheckVolNames"></a> [[PCheckVolNames]]
430
431 <dl>
432   <dt><strong>Group</strong></dt>
433   <dd> V </dd>
434   <dt><strong>Function</strong></dt>
435   <dd> VIOCCKBACK (11) - Check backup volume mappings </dd>
436   <dt><strong>Arguments</strong></dt>
437   <dd> none </dd>
438   <dt><strong>Outcome</strong></dt>
439   <dd> 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 </dd>
440 </dl>
441
442 **Errors**
443
444 - EIO - if the afs daemon hasn't started yet
445
446 <dl>
447   <dt><strong>Side Effects</strong></dt>
448   <dd> none listed </dd>
449 </dl>
450
451 ## <a name="PCheckAuth"></a> [[PCheckAuth]]
452
453 <dl>
454   <dt><strong>Group</strong></dt>
455   <dd> V </dd>
456   <dt><strong>Function</strong></dt>
457   <dd> VIOCCKCONN (12) - Check connections for a user </dd>
458   <dt><strong>Arguments</strong></dt>
459   <dd> none </dd>
460   <dt><strong>Outcome</strong></dt>
461   <dd> check to see if a user has the correct authentication. If so, allow access </dd>
462 </dl>
463
464 **Errors**
465
466 - EACCES - if no user is specified
467 - EACCES - if the user has no tokens set
468 - EACCES - if the users tokens are bad
469
470 <dl>
471   <dt><strong>Side Effects</strong></dt>
472   <dd> check the connections to all the servers specified </dd>
473 </dl>
474
475 ## <a name="PFindVolume"></a> [[PFindVolume]]
476
477 <dl>
478   <dt><strong>Group</strong></dt>
479   <dd> V </dd>
480   <dt><strong>Function</strong></dt>
481   <dd> VIOCWHEREIS (14) - Find out where a volume is located </dd>
482   <dt><strong>Arguments</strong></dt>
483   <dd> none </dd>
484   <dt><strong>Outcome</strong></dt>
485   <dd> find a volume, based on a volume file id </dd>
486 </dl>
487
488 **Errors**
489
490 - EINVAL - if some of the default arguments don't exist
491 - ENODEV - if there is no such volume
492
493 <dl>
494   <dt><strong>Side Effects</strong></dt>
495   <dd> check each of the servers specified </dd>
496 </dl>
497
498 ## <a name="PViceAccess"></a> [[PViceAccess]]
499
500 <dl>
501   <dt><strong>Group</strong></dt>
502   <dd> V </dd>
503   <dt><strong>Function</strong></dt>
504   <dd> VIOCACCESS (20) - Access using PRS_FS bits </dd>
505   <dt><strong>Arguments</strong></dt>
506   <dd> none </dd>
507   <dt><strong>Outcome</strong></dt>
508   <dd> check to make sure access is allowed </dd>
509 </dl>
510
511 **Errors**
512
513 - EINVAL - if some of the initial arguments aren't set
514 - EACCES - if access is denied
515
516 <dl>
517   <dt><strong>Side Effects</strong></dt>
518   <dd> none listed </dd>
519 </dl>
520
521 ## <a name="PGetFID"></a> [[PGetFID]]
522
523 <dl>
524   <dt><strong>Group</strong></dt>
525   <dd> V </dd>
526   <dt><strong>Function</strong></dt>
527   <dd> VIOCETFID (22) - Get file ID quickly </dd>
528   <dt><strong>Arguments</strong></dt>
529   <dd> none </dd>
530   <dt><strong>Outcome</strong></dt>
531   <dd> get the file id of some file </dd>
532 </dl>
533
534 **Errors**
535
536 - EINVAL - if some fo the initial arguments aren't set
537
538 <dl>
539   <dt><strong>Side Effects</strong></dt>
540   <dd> none listed </dd>
541 </dl>
542
543 ## <a name="PSetCacheSize"></a> [[PSetCacheSize]]
544
545 <dl>
546   <dt><strong>Group</strong></dt>
547   <dd> V </dd>
548   <dt><strong>Function</strong></dt>
549   <dd> VIOCSETCACHESIZE (24) - Set venus cache size in 1000 units </dd>
550   <dt><strong>Arguments</strong></dt>
551   <dd> The size the venus cache should be set to </dd>
552   <dt><strong>Outcome</strong></dt>
553   <dd> Set the cache size based on user intput. If no size is given, set it to the default [[Main/OpenAFS]] cache size </dd>
554 </dl>
555
556 **Errors**
557
558 - EACCES - if the user doen't have super-user credentials
559 - EROFS - if the cache is set to be in memory
560
561 <dl>
562   <dt><strong>Side Effects</strong></dt>
563   <dd> recompute the general cache parameters for every single block allocated </dd>
564 </dl>
565
566 ## <a name="PRemoveCallback"></a> [[PRemoveCallback]]
567
568 <dl>
569   <dt><strong>Group</strong></dt>
570   <dd> V </dd>
571   <dt><strong>Function</strong></dt>
572   <dd> VIOCFLUSHCB (25) - Flush callback only </dd>
573   <dt><strong>Arguments</strong></dt>
574   <dd> none </dd>
575   <dt><strong>Outcome</strong></dt>
576   <dd> Flushes callbacks, by setting the length of callbacks to one, setting the next callback to be sent to the CB_DROPPED value, and then dequeue's everything else </dd>
577 </dl>
578
579 **Errors**
580
581 - EINVAL - if some of the initial default arguments aren't set return's 0 - if the volume is set to read-only
582
583 <dl>
584   <dt><strong>Side Effects</strong></dt>
585   <dd> none listed </dd>
586 </dl>
587
588 ## <a name="PNewCell"></a> [[PNewCell]]
589
590 <dl>
591   <dt><strong>Group</strong></dt>
592   <dd> V </dd>
593   <dt><strong>Function</strong></dt>
594   <dd> VIOCNEWCELL (26) - Configure new cell </dd>
595   <dt><strong>Arguments</strong></dt>
596   <dd> 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 </dd>
597   <dt><strong>Outcome</strong></dt>
598   <dd> creates a new cell </dd>
599 </dl>
600
601 **Errors**
602
603 - EIO - if the afs daemon hasn't started yet
604 - EACCES - if the user doesn't have super-user credentials
605 - EINVAL - if some 'magic' var doesn't have a certain bit set
606
607 <dl>
608   <dt><strong>Side Effects</strong></dt>
609   <dd> none listed </dd>
610 </dl>
611
612 ## <a name="PListCells"></a> [[PListCells]]
613
614 <dl>
615   <dt><strong>Group</strong></dt>
616   <dd> V </dd>
617   <dt><strong>Function</strong></dt>
618   <dd> VIOCGETCELL (27) - Get cell info </dd>
619   <dt><strong>Arguments</strong></dt>
620   <dd> The cell index of a specific cell </dd>
621   <dt><strong>Outcome</strong></dt>
622   <dd> Lists the cells server names and addresses </dd>
623 </dl>
624
625 **Errors**
626
627 - EIO - if the afs daemon hasn't started yet
628 - EDOM - if there is no cell asked about
629
630 <dl>
631   <dt><strong>Side Effects</strong></dt>
632   <dd> none listed </dd>
633 </dl>
634
635 ## <a name="PRemoveMount"></a> [[PRemoveMount]]
636
637 <dl>
638   <dt><strong>Group</strong></dt>
639   <dd> V </dd>
640   <dt><strong>Function</strong></dt>
641   <dd> VIOC_AFS_DELETE_MT_PT (28) - Delete mount point </dd>
642   <dt><strong>Arguments</strong></dt>
643   <dd> none // I DON'T THINK </dd>
644   <dt><strong>Outcome</strong></dt>
645   <dd> Ensure that everything is ok, before deleting the mountpoint. If not, don't delete. Delete a mount point based on a file id </dd>
646 </dl>
647
648 **Errors**
649
650 - EINVAL - if some of default arguments don't exist
651 - ENOTDIR - if the argument to remove is not a directory
652 - ENOENT - if there is no cache to remove the mount point from
653 - ENOENT - if a vcache doesn't exist
654
655 <dl>
656   <dt><strong>Side Effects</strong></dt>
657   <dd> none listed </dd>
658 </dl>
659
660 ## <a name="PNewStatMount"></a> [[PNewStatMount]]
661
662 <dl>
663   <dt><strong>Group</strong></dt>
664   <dd> V </dd>
665   <dt><strong>Function</strong></dt>
666   <dd> VIOC_AFS_STAT_MT_PT (29) - Stat mount point </dd>
667   <dt><strong>Arguments</strong></dt>
668   <dd> the last component in a path, related to mountpoint that we're looking for information about </dd>
669   <dt><strong>Outcome</strong></dt>
670   <dd> get the volume, and cell, as well as the link data for a mount point </dd>
671 </dl>
672
673 **Errors**
674
675 - EINVAL - if some of the default initial arguments aren't set
676 - ENOTDIR - if the 'mount point' argument isn't a directory
677 - EIO - if the link data can't be accessed
678
679 <dl>
680   <dt><strong>Side Effects</strong></dt>
681   <dd> none listed </dd>
682 </dl>
683
684 ## <a name="PGetFileCell"></a> [[PGetFileCell]]
685
686 <dl>
687   <dt><strong>Group</strong></dt>
688   <dd> V </dd>
689   <dt><strong>Function</strong></dt>
690   <dd> VIOC_FILE_CELL_NAME (30) - Get cell in which file lives </dd>
691   <dt><strong>Arguments</strong></dt>
692   <dd> none </dd>
693   <dt><strong>Outcome</strong></dt>
694   <dd> Get a cell based on a passed in on a passed in file id </dd>
695 </dl>
696
697 **Errors**
698
699 - EINVAL - if someo f the default initial arguments aren't set
700 - ESRCH - if the file isn't part of a cell
701
702 <dl>
703   <dt><strong>Side Effects</strong></dt>
704   <dd> none listed </dd>
705 </dl>
706
707 ## <a name="PGetWSCell"></a> [[PGetWSCell]]
708
709 <dl>
710   <dt><strong>Group</strong></dt>
711   <dd> V </dd>
712   <dt><strong>Function</strong></dt>
713   <dd> VIOC_GET_WS_CELL (31) - Get cell in which workstation lives </dd>
714   <dt><strong>Arguments</strong></dt>
715   <dd> none </dd>
716   <dt><strong>Outcome</strong></dt>
717   <dd> Get the primary cell that the machine is a part of </dd>
718 </dl>
719
720 **Errors**
721
722 - EIO - if the afs daemon hasn't started yet
723 - ESRCH - if the machine isn't part of a cell, for whatever reason
724
725 <dl>
726   <dt><strong>Side Effects</strong></dt>
727   <dd> none listed </dd>
728 </dl>
729
730 ## <a name="PMariner"></a> PMariner
731
732 <dl>
733   <dt><strong>Group</strong></dt>
734   <dd> V </dd>
735   <dt><strong>Function</strong></dt>
736   <dd> VIOC_AFS_MARINER_HOST (32) - Get/set mariner (cache manager monitor) host </dd>
737   <dt><strong>Arguments</strong></dt>
738   <dd> none </dd>
739   <dt><strong>Outcome</strong></dt>
740   <dd> depending on what whether or not a variable is set, either get the host for the cache manager monitor, or set the old address, and give it a new address </dd>
741 </dl>
742
743 **Errors** turn off mariner
744
745 <dl>
746   <dt><strong>Side Effects</strong></dt>
747   <dd> none listed </dd>
748 </dl>
749
750 ## <a name="PGetUserCell"></a> [[PGetUserCell]]
751
752 <dl>
753   <dt><strong>Group</strong></dt>
754   <dd> V </dd>
755   <dt><strong>Function</strong></dt>
756   <dd> VIOC_GET_PRIMARY_CELL (33) - Get primary cell for caller </dd>
757   <dt><strong>Arguments</strong></dt>
758   <dd> none </dd>
759   <dt><strong>Outcome</strong></dt>
760   <dd> get the primary cell for a certain user, based on the user's uid </dd>
761 </dl>
762
763 **Errors**
764
765 - ESRCH - if the user corresponding to the uid doesn't have a primary cell specified
766
767 <dl>
768   <dt><strong>Side Effects</strong></dt>
769   <dd> none listed </dd>
770 </dl>
771
772 ## <a name="PVenusLogging"></a> [[PVenusLogging]]
773
774 <dl>
775   <dt><strong>Group</strong></dt>
776   <dd> V </dd>
777   <dt><strong>Function</strong></dt>
778   <dd> VIOC_VENUSLOG (34) - Enable/Disable venus logging </dd>
779   <dt><strong>Arguments</strong></dt>
780   <dd> none </dd>
781   <dt><strong>Outcome</strong></dt>
782   <dd> obsoleted, perhaps should be PBogus </dd>
783 </dl>
784
785 **Errors**
786
787 - EINVAL - this is all the function does, perhaps this pioctl should be PBogus
788
789 <dl>
790   <dt><strong>Side Effects</strong></dt>
791   <dd> always throws an error </dd>
792 </dl>
793
794 ## <a name="PGetCellStatus"></a> [[PGetCellStatus]]
795
796 <dl>
797   <dt><strong>Group</strong></dt>
798   <dd> V </dd>
799   <dt><strong>Function</strong></dt>
800   <dd> VIOC_GETCELLSTATUS (35) - Get cell status info </dd>
801   <dt><strong>Arguments</strong></dt>
802   <dd> the cell you want status information on </dd>
803   <dt><strong>Outcome</strong></dt>
804   <dd> returns the state of the cell as defined in a struct cell </dd>
805 </dl>
806
807 **Errors**
808
809 - EIO - the afs daemon hasn't started yet
810 - ENOENT - the cell doesn't exist
811
812 <dl>
813   <dt><strong>Side Effects</strong></dt>
814   <dd> none listed </dd>
815 </dl>
816
817 ## <a name="PSetCellStatus"></a> [[PSetCellStatus]]
818
819 <dl>
820   <dt><strong>Group</strong></dt>
821   <dd> V </dd>
822   <dt><strong>Function</strong></dt>
823   <dd> VIOC_SETCELLSTATUS (36) - Set corresponding info </dd>
824   <dt><strong>Arguments</strong></dt>
825   <dd> The cell you want to set information about, and the values you want to set </dd>
826   <dt><strong>Outcome</strong></dt>
827   <dd> Set the state of the cell in a defined struct cell, based on whether or not [[Main/SetUID]] is allowed </dd>
828 </dl>
829
830 **Errors**
831
832 - EIO - the afs daemon hasn't started yet
833 - EACCES - the user does not have super-user credentials
834
835 <dl>
836   <dt><strong>Side Effects</strong></dt>
837   <dd> none listed </dd>
838 </dl>
839
840 ## <a name="PFlushVolumeData"></a> [[PFlushVolumeData]]
841
842 <dl>
843   <dt><strong>Group</strong></dt>
844   <dd> V </dd>
845   <dt><strong>Function</strong></dt>
846   <dd> VIOC_FLUSHVOLUME (37) - Flush whole volume's data </dd>
847   <dt><strong>Arguments</strong></dt>
848   <dd> none //ALTHOUGH MAYBE A VCACHE CONTAINING WHICH VOLUME </dd>
849   <dt><strong>Outcome</strong></dt>
850   <dd> Wipe everything on the volume. Dependent on which platform this is is for, as to how it's done </dd>
851 </dl>
852
853 **Errors**
854
855 - EINVAL - some of the initial default arguments aren't set
856 - EIO - the afs daemon hasn't started yet
857
858 <dl>
859   <dt><strong>Side Effects</strong></dt>
860   <dd> 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 </dd>
861 </dl>
862
863 ## <a name="PSetSysName"></a> [[PSetSysName]]
864
865 <dl>
866   <dt><strong>Group</strong></dt>
867   <dd> V </dd>
868   <dt><strong>Function</strong></dt>
869   <dd> VIOC_AFS_SYSNAME (38) - Change @sys value </dd>
870   <dt><strong>Arguments</strong></dt>
871   <dd> a new value for @sys </dd>
872   <dt><strong>Outcome</strong></dt>
873   <dd> 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 </dd>
874 </dl>
875
876 **Errors**
877
878 - EINVAL - if afsd isn't runing
879 - EINVAL - if the new sysname is too large
880 - EINVAL - if the new sysname causes issues(starts with a .0 or a ..0
881 - EINVAL - if there is no PAG set in the credentials
882 - EINVAL - if the user of a PAG can't be found
883 - EINVAL - if (!(exporter = au-&gt;exporter)) // NOT SURE ON THIS
884 - ENODEV - if there isn't already a system named that //I THINK
885 - EACCES - if the user doesn't have super-user credentials
886
887 <dl>
888   <dt><strong>Side Effects</strong></dt>
889   <dd> local user needs root, remote user does not (because remote user ids aren't trusted) </dd>
890 </dl>
891
892 ## <a name="PExportAfs"></a> [[PExportAfs]]
893
894 <dl>
895   <dt><strong>Group</strong></dt>
896   <dd> V </dd>
897   <dt><strong>Function</strong></dt>
898   <dd> VIOC_EXPORTAFS (39) - Export afs to nfs clients </dd>
899   <dt><strong>Arguments</strong></dt>
900   <dd> A struct Vic * EIOctl containing export values needed to change between nfs and afs </dd>
901   <dt><strong>Outcome</strong></dt>
902   <dd> //REALLY NOT SURE ON THIS... INPUT WOULD BE NICE </dd>
903 </dl>
904
905 **Errors**
906
907 - ENODEV - if the exporter doesn't exist
908 - EACCES - if the user doesn't have super-user credentials $ **Side Effects**:none listed
909
910 ## <a name="PGetCacheSize"></a> [[PGetCacheSize]]
911
912 <dl>
913   <dt><strong>Group</strong></dt>
914   <dd> V </dd>
915   <dt><strong>Function</strong></dt>
916   <dd> VIOCGETCACHEPARMS (40) - Get cache stats </dd>
917   <dt><strong>Arguments</strong></dt>
918   <dd> none </dd>
919   <dt><strong>Outcome</strong></dt>
920   <dd> Get the cache blocks, and how many of the cache blocks there are </dd>
921 </dl>
922
923 **Errors**
924
925 - none, seemingly
926
927 <dl>
928   <dt><strong>Side Effects</strong></dt>
929   <dd> none listed </dd>
930 </dl>
931
932 ## <a name="PGetVnodeXStatus"></a> [[PGetVnodeXStatus]]
933
934 <dl>
935   <dt><strong>Group</strong></dt>
936   <dd> V </dd>
937   <dt><strong>Function</strong></dt>
938   <dd> VIOCGETVCXSTATUS (41) - ??? </dd>
939   <dt><strong>Arguments</strong></dt>
940   <dd> none </dd>
941   <dt><strong>Outcome</strong></dt>
942   <dd> get's the fid, the data version, any lock, the parent vnode, the parent unique identifier, the truncation position, the callback, cbExpires(probably 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 </dd>
943 </dl>
944
945 **Errors**
946
947 - EINVAL - if some of the initial default arguments aren't set
948 - EACCES - if access to check the mode bits is denied
949
950 <dl>
951   <dt><strong>Side Effects</strong></dt>
952   <dd> none listed </dd>
953 </dl>
954
955 ## <a name="PSetSPrefs33"></a> [[PSetSPrefs33]]
956
957 <dl>
958   <dt><strong>Group</strong></dt>
959   <dd> V </dd>
960   <dt><strong>Function</strong></dt>
961   <dd> VIOC_SETPREFS33 (42) - Set server ranks (deprecated) </dd>
962   <dt><strong>Arguments</strong></dt>
963   <dd> the server preferences to be set </dd>
964   <dt><strong>Outcome</strong></dt>
965   <dd> set the server preferences, calling a function </dd>
966 </dl>
967
968 **Errors**
969
970 - none
971
972 <dl>
973   <dt><strong>Side Effects</strong></dt>
974   <dd> none listed </dd>
975 </dl>
976
977 ## <a name="PGetSPrefs"></a> [[PGetSPrefs]]
978
979 <dl>
980   <dt><strong>Group</strong></dt>
981   <dd> V </dd>
982   <dt><strong>Function</strong></dt>
983   <dd> VIOC_GETSPREFS (43) - Get server ranks </dd>
984   <dt><strong>Arguments</strong></dt>
985   <dd> none </dd>
986   <dt><strong>Outcome</strong></dt>
987   <dd> Get the sprefs </dd>
988 </dl>
989
990 **Errors**
991
992 - EIO - if the afs daemon hasn't started yet
993 - ENOENT - is the sprefrequest is too large
994
995 <dl>
996   <dt><strong>Side Effects</strong></dt>
997   <dd> none listed </dd>
998 </dl>
999
1000 ## <a name="PGag"></a> PGag
1001
1002 <dl>
1003   <dt><strong>Group</strong></dt>
1004   <dd> V </dd>
1005   <dt><strong>Function</strong></dt>
1006   <dd> VIOC_GAG (44) - Silence Cache Manager </dd>
1007   <dt><strong>Arguments</strong></dt>
1008   <dd> The flags to either gag or de-gag the cache manager </dd>
1009   <dt><strong>Outcome</strong></dt>
1010   <dd> set the gag flags, then show these flags </dd>
1011 </dl>
1012
1013 **Errors**
1014
1015 - EACCES - if the user doesn't have super-user credentials
1016
1017 <dl>
1018   <dt><strong>Side Effects</strong></dt>
1019   <dd> none listed </dd>
1020 </dl>
1021
1022 ## <a name="PTwiddleRx"></a> [[PTwiddleRx]]
1023
1024 <dl>
1025   <dt><strong>Group</strong></dt>
1026   <dd> V </dd>
1027   <dt><strong>Function</strong></dt>
1028   <dd> VIOC_TWIDDLE (45) - Adjust RX knobs </dd>
1029   <dt><strong>Arguments</strong></dt>
1030   <dd> the previous settings of the 'knobs' </dd>
1031   <dt><strong>Outcome</strong></dt>
1032   <dd> build out the struct rxp, from a struct rx </dd>
1033 </dl>
1034
1035 **Errors**
1036
1037 - EACCES - if the user doesn't have super-user credentials
1038
1039 <dl>
1040   <dt><strong>Side Effects</strong></dt>
1041   <dd> none listed </dd>
1042 </dl>
1043
1044 ## <a name="PSetSPrefs"></a> [[PSetSPrefs]]
1045
1046 <dl>
1047   <dt><strong>Group</strong></dt>
1048   <dd> V </dd>
1049   <dt><strong>Function</strong></dt>
1050   <dd> VIOC_SETPREFS (46) - Set server ranks </dd>
1051   <dt><strong>Arguments</strong></dt>
1052   <dd> the sprefs value to want the sprefs set to </dd>
1053   <dt><strong>Outcome</strong></dt>
1054   <dd> set the sprefs using the afs_setsprefs() function </dd>
1055 </dl>
1056
1057 **Errors**
1058
1059 - EIO - if the afs daemon hasn't started yet
1060 - EACCES - if the user doesn't have super-user credentials
1061 - EINVAL - if the struct setsprefs is too large
1062 - EINVAL - if the struct setsprefs multiplied by the number of servers is too large
1063
1064 <dl>
1065   <dt><strong>Side Effects</strong></dt>
1066   <dd> none listed </dd>
1067 </dl>
1068
1069 ## <a name="PStoreBehind"></a> [[PStoreBehind]]
1070
1071 <dl>
1072   <dt><strong>Group</strong></dt>
1073   <dd> V </dd>
1074   <dt><strong>Function</strong></dt>
1075   <dd> VIOC_STORBEHIND (47) Adjust store asynchrony </dd>
1076   <dt><strong>Arguments</strong></dt>
1077   <dd> sets the sbstruct </dd>
1078   <dt><strong>Outcome</strong></dt>
1079   <dd> set asynchrony based on a file, from a struct sbstruct //I THINK </dd>
1080 </dl>
1081
1082 **Errors**
1083
1084 - EPERM - if the user doesn't have super-user credentials
1085 - EACCES - if there isn't enough access to not check the mode bits
1086
1087 <dl>
1088   <dt><strong>Side Effects</strong></dt>
1089   <dd> none listed </dd>
1090 </dl>
1091
1092 ## <a name="PGCPAGs"></a> PGCPAGs
1093
1094 <dl>
1095   <dt><strong>Group</strong></dt>
1096   <dd> V </dd>
1097   <dt><strong>Function</strong></dt>
1098   <dd> VIOC_GCPAGS (48) - Disable automatic PAG gc'ing </dd>
1099   <dt><strong>Arguments</strong></dt>
1100   <dd> none </dd>
1101   <dt><strong>Outcome</strong></dt>
1102   <dd> set the gcpags to GCPAGS_USERDISABLED </dd>
1103 </dl>
1104
1105 **Errors**
1106
1107 - EACCES - if the user doesn't have super-user credentials
1108
1109 <dl>
1110   <dt><strong>Side Effects</strong></dt>
1111   <dd> none listed </dd>
1112 </dl>
1113
1114 ## <a name="PGetInitParams"></a> [[PGetInitParams]]
1115
1116 <dl>
1117   <dt><strong>Group</strong></dt>
1118   <dd> V </dd>
1119   <dt><strong>Function</strong></dt>
1120   <dd> VIOC_GETINITPARAMS (49) - Get initial cache manager parameters </dd>
1121   <dt><strong>Arguments</strong></dt>
1122   <dd> none </dd>
1123   <dt><strong>Outcome</strong></dt>
1124   <dd> return the initial cache manager parameters </dd>
1125 </dl>
1126
1127 **Errors**
1128
1129 - [[E2BIG]] - if the initial parameters are bigger than some PIGGYSIZE
1130
1131 <dl>
1132   <dt><strong>Side Effects</strong></dt>
1133   <dd> none listed </dd>
1134 </dl>
1135
1136 ## <a name="PGetCPrefs"></a> [[PGetCPrefs]]
1137
1138 <dl>
1139   <dt><strong>Group</strong></dt>
1140   <dd> V </dd>
1141   <dt><strong>Function</strong></dt>
1142   <dd> VIOC_GETCPREFS (50) - Get client interface </dd>
1143   <dt><strong>Arguments</strong></dt>
1144   <dd> none </dd>
1145   <dt><strong>Outcome</strong></dt>
1146   <dd> get the information about the client interface </dd>
1147 </dl>
1148
1149 **Errors**
1150
1151 - - EIO - the afs daemon hasn't started yet
1152   - EINVAL - if the request is too large for the struct that will be holding it
1153
1154 <dl>
1155   <dt><strong>Side Effects</strong></dt>
1156   <dd> none listed </dd>
1157 </dl>
1158
1159 ## <a name="PSetCPrefs"></a> [[PSetCPrefs]]
1160
1161 <dl>
1162   <dt><strong>Group</strong></dt>
1163   <dd> V </dd>
1164   <dt><strong>Function</strong></dt>
1165   <dd> VIOC_SETCPREFS (51) - Set client interface </dd>
1166   <dt><strong>Arguments</strong></dt>
1167   <dd> The interfaces you want set </dd>
1168   <dt><strong>Outcome</strong></dt>
1169   <dd> set the callback interfaces addresses to those of the hosts </dd>
1170 </dl>
1171
1172 **Errors**
1173
1174 - EIO - the afs daemon hasn't started yet
1175 - EINVAL - the input is too large for the struct
1176 - ENOMEM - if there are too many servers
1177
1178 <dl>
1179   <dt><strong>Side Effects</strong></dt>
1180   <dd> none listed </dd>
1181 </dl>
1182
1183 ## <a name="PFlushMount"></a> [[PFlushMount]]
1184
1185 <dl>
1186   <dt><strong>Group</strong></dt>
1187   <dd> V </dd>
1188   <dt><strong>Function</strong></dt>
1189   <dd> VIOC_AFS_FLUSHMOUNT (52) - Flush mount symlink data </dd>
1190   <dt><strong>Arguments</strong></dt>
1191   <dd> The last part of a path to a mount point, which tells us what to flush </dd>
1192   <dt><strong>Outcome</strong></dt>
1193   <dd> remove all of the mount data from the dcache regarding a certain mount point </dd>
1194 </dl>
1195
1196 **Errors**
1197
1198 - EINVAL - if some of the initial arguments aren't set
1199 - ENOTDIR - if the initial argument for the mount point isn't a directory
1200 - ENOENT - if the dcache entry isn't set
1201
1202 ## <a name="PRxStatProc"></a> [[PRxStatProc]]
1203
1204 <dl>
1205   <dt><strong>Group</strong></dt>
1206   <dd> V </dd>
1207   <dt><strong>Function</strong></dt>
1208   <dd> VIOC_RXSTAT_PROC (53) - Control process RX statistics </dd>
1209   <dt><strong>Arguments</strong></dt>
1210   <dd> The flags that control which statistics to use </dd>
1211   <dt><strong>Outcome</strong></dt>
1212   <dd> either enable process RPCStats, disable process RPCStats, or clear the process RPCStats </dd>
1213 </dl>
1214
1215 **Errors**
1216
1217 - EACCES - if the user doesn't have super-user credentials
1218 - EINVAL - if the flag input is too long
1219
1220 <dl>
1221   <dt><strong>Side Effects</strong></dt>
1222   <dd> none listed </dd>
1223 </dl>
1224
1225 ## <a name="PRxStatPeer"></a> [[PRxStatPeer]]
1226
1227 <dl>
1228   <dt><strong>Group</strong></dt>
1229   <dd> V </dd>
1230   <dt><strong>Function</strong></dt>
1231   <dd> VIOC_RXSTAT_PEER (54) - Control peer RX statistics </dd>
1232   <dt><strong>Arguments</strong></dt>
1233   <dd> The flags that control which statistics to use </dd>
1234   <dt><strong>Outcome</strong></dt>
1235   <dd> either enable peer RPCStats, disable peer RPCStats, or clear the peer RPCStats </dd>
1236 </dl>
1237
1238 **Errors**
1239
1240 - EACCES - if the user doesn't have super-user credentials
1241 - EINVAL - if the flag input is too long
1242
1243 <dl>
1244   <dt><strong>Side Effects</strong></dt>
1245   <dd> none listed </dd>
1246 </dl>
1247
1248 ## <a name="PGetRxkcrypt"></a> [[PGetRxkcrypt]]
1249
1250 <dl>
1251   <dt><strong>Group</strong></dt>
1252   <dd> V </dd>
1253   <dt><strong>Function</strong></dt>
1254   <dd> VIOC_GETRXKCRYPT (55) - Get rxkad encryption flag </dd>
1255   <dt><strong>Arguments</strong></dt>
1256   <dd> none </dd>
1257   <dt><strong>Outcome</strong></dt>
1258   <dd> get the value of cryptall(presumably whether or not things should be encrypted </dd>
1259 </dl>
1260
1261 **Errors**
1262
1263 - none
1264
1265 <dl>
1266   <dt><strong>Side Effects</strong></dt>
1267   <dd> none listed </dd>
1268 </dl>
1269
1270 ## <a name="PSetRxkcrypt"></a> [[PSetRxkcrypt]]
1271
1272 <dl>
1273   <dt><strong>Group</strong></dt>
1274   <dd> V </dd>
1275   <dt><strong>Function</strong></dt>
1276   <dd> VIOC_SETRXKCRYPT (56) - Set rxkad encryption flag </dd>
1277   <dt><strong>Arguments</strong></dt>
1278   <dd> the argument whether or not things should be encrypted </dd>
1279   <dt><strong>Outcome</strong></dt>
1280   <dd> set whether or not things should be encrypted </dd>
1281 </dl>
1282
1283 **Errors**
1284
1285 - EPERM - if the user doesn't have super-user credentials
1286 - EINVAL - if the input is too big, or if the input is outside the bounds of what it can be set to
1287
1288 <dl>
1289   <dt><strong>Side Effects</strong></dt>
1290   <dd> none really, but may need to be modified at a later date to take into account other values for cryptall(beyond true and false) </dd>
1291 </dl>
1292
1293 ## <a name="PSetClientContext"></a> [[PSetClientContext]]
1294
1295 <dl>
1296   <dt><strong>Group</strong></dt>
1297   <dd> V </dd>
1298   <dt><strong>Function</strong></dt>
1299   <dd>[[Main/PsetClientContext]] (99) - NFS-PAG pioctl (for knfs/rmtsysd) </dd>
1300   <dt><strong>Arguments</strong></dt>
1301   <dd> none </dd>
1302   <dt><strong>Outcome</strong></dt>
1303   <dd> 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 </dd>
1304 </dl>
1305
1306 **Errors**
1307
1308 - none
1309
1310 <dl>
1311   <dt><strong>Side Effects</strong></dt>
1312   <dd> none listed </dd>
1313 </dl>
1314
1315 //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
1316
1317 <dl>
1318   <dt><strong>Group</strong></dt>
1319   <dd> V </dd>
1320   <dt><strong>Function</strong></dt>
1321   <dd><strong>*reserved*</strong> (239) - Reserved for code expansion </dd>
1322 </dl>
1323
1324 ----
1325
1326 <dl>
1327   <dt><strong>Group</strong></dt>
1328   <dd> V </dd>
1329   <dt><strong>Function</strong></dt>
1330   <dd> VIOC_SITE1 (240) - Reserved for site-specific extensions </dd>
1331 </dl>
1332
1333 ----
1334
1335 <dl>
1336   <dt><strong>Group</strong></dt>
1337   <dd> V </dd>
1338   <dt><strong>Function</strong></dt>
1339   <dd> VIOC_STIE2 (241) - Reserved for site-specific extensions </dd>
1340 </dl>
1341
1342 ----
1343
1344 <dl>
1345   <dt><strong>Group</strong></dt>
1346   <dd> V </dd>
1347   <dt><strong>Function</strong></dt>
1348   <dd> VIOC_SITE3 (242) - Reserved for site-specific extensions </dd>
1349 </dl>
1350
1351 ----
1352
1353 <dl>
1354   <dt><strong>Group</strong></dt>
1355   <dd> V </dd>
1356   <dt><strong>Function</strong></dt>
1357   <dd> VIOC_SITE4 (243) - Reserved for site-specific extensions </dd>
1358 </dl>
1359
1360 ----
1361
1362 <dl>
1363   <dt><strong>Group</strong></dt>
1364   <dd> V </dd>
1365   <dt><strong>Function</strong></dt>
1366   <dd> VIOC_SITE5 (244) - Reserved for site-specific extensions </dd>
1367 </dl>
1368
1369 ----
1370
1371 <dl>
1372   <dt><strong>Group</strong></dt>
1373   <dd> V </dd>
1374   <dt><strong>Function</strong></dt>
1375   <dd> VIOC_SITE6 (245) - Reserved for site-specific extensions </dd>
1376 </dl>
1377
1378 ----
1379
1380 <dl>
1381   <dt><strong>Group</strong></dt>
1382   <dd> V </dd>
1383   <dt><strong>Function</strong></dt>
1384   <dd> VIOC_SITE7 (246) - Reserved for site-specific extensions </dd>
1385 </dl>
1386
1387 ----
1388
1389 <dl>
1390   <dt><strong>Group</strong></dt>
1391   <dd> V </dd>
1392   <dt><strong>Function</strong></dt>
1393   <dd> VIOC_SITE8 (247) - Reserved for site-specific extensions </dd>
1394 </dl>
1395
1396 ----
1397
1398 <dl>
1399   <dt><strong>Group</strong></dt>
1400   <dd> V </dd>
1401   <dt><strong>Function</strong></dt>
1402   <dd> VIOC_PRIVATE1 (248) - Reserved for implementation use </dd>
1403 </dl>
1404
1405 ----
1406
1407 <dl>
1408   <dt><strong>Group</strong></dt>
1409   <dd> V </dd>
1410   <dt><strong>Function</strong></dt>
1411   <dd> VIOC_PRIVATE2 (249) - Reserved for implementation use </dd>
1412 </dl>
1413
1414 ----
1415
1416 <dl>
1417   <dt><strong>Group</strong></dt>
1418   <dd> V </dd>
1419   <dt><strong>Function</strong></dt>
1420   <dd> VIOC_PRIVATE3 (250) - Reserved for implementation use </dd>
1421 </dl>
1422
1423 ----
1424
1425 <dl>
1426   <dt><strong>Group</strong></dt>
1427   <dd> V </dd>
1428   <dt><strong>Function</strong></dt>
1429   <dd> VIOC_PRIVATE4 (251) - Reserved for implementation use </dd>
1430 </dl>
1431
1432 ----
1433
1434 <dl>
1435   <dt><strong>Group</strong></dt>
1436   <dd> V </dd>
1437   <dt><strong>Function</strong></dt>
1438   <dd> VIOC_PRIVATE5 (252) - Reserved for implementation use </dd>
1439 </dl>
1440
1441 ----
1442
1443 <dl>
1444   <dt><strong>Group</strong></dt>
1445   <dd> V </dd>
1446   <dt><strong>Function</strong></dt>
1447   <dd> VIOC_PRIVATE6 (253) - Reserved for implementation use </dd>
1448 </dl>
1449
1450 ----
1451
1452 <dl>
1453   <dt><strong>Group</strong></dt>
1454   <dd> V </dd>
1455   <dt><strong>Function</strong></dt>
1456   <dd> VIOC_PRIVATE7 (254) - Reserved for implementation use </dd>
1457 </dl>
1458
1459 ----
1460
1461 <dl>
1462   <dt><strong>Group</strong></dt>
1463   <dd> V </dd>
1464   <dt><strong>Function</strong></dt>
1465   <dd> VIOC_PRIVATE8 (255) - Reserved for implementation use </dd>
1466 </dl>