aboutsummaryrefslogtreecommitdiff
path: root/crypto/heimdal/lib/kafs/kafs.cat3
blob: df2e0785e621ee6b7181cb6637b751bf010c07ec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
KAFS(3)                FreeBSD Library Functions Manual                KAFS(3)

NNAAMMEE
     kk__hhaassaaffss, kk__ppiiooccttll, kk__uunnlloogg, kk__sseettppaagg, kk__aaffss__cceellll__ooff__ffiillee, kkrrbb__aaffsslloogg,
     kkrrbb__aaffsslloogg__uuiidd - AFS library

LLIIBBRRAARRYY
     AFS cache manager access library (libkafs, -lkafs)

SSYYNNOOPPSSIISS
     ##iinncclluuddee <<kkaaffss..hh>>

     _i_n_t
     kk__aaffss__cceellll__ooff__ffiillee(_c_o_n_s_t _c_h_a_r _*_p_a_t_h, _c_h_a_r _*_c_e_l_l, _i_n_t _l_e_n);

     _i_n_t
     kk__hhaassaaffss();

     _i_n_t
     kk__ppiiooccttll(_c_h_a_r _*_a___p_a_t_h, _i_n_t _o___o_p_c_o_d_e, _s_t_r_u_c_t _V_i_c_e_I_o_c_t_l _*_a___p_a_r_a_m_s_P,
             _i_n_t _a___f_o_l_l_o_w_S_y_m_l_i_n_k_s);

     _i_n_t
     kk__sseettppaagg();

     _i_n_t
     kk__uunnlloogg();

     _i_n_t
     kkrrbb__aaffsslloogg(_c_h_a_r _*_c_e_l_l, _c_h_a_r _*_r_e_a_l_m);

     _i_n_t
     kkrrbb__aaffsslloogg__uuiidd(_c_h_a_r _*_c_e_l_l, _c_h_a_r _*_r_e_a_l_m, _u_i_d___t _u_i_d);

DDEESSCCRRIIPPTTIIOONN
     kk__hhaassaaffss() initializes some library internal structures, and tests for
     the presence of AFS in the kernel, none of the other functions should be
     called before kk__hhaassaaffss() is called, or if it fails.

     kkrrbb__aaffsslloogg(), and kkrrbb__aaffsslloogg__uuiidd() obtains new tokens (and possibly tick-
     ets) for the specified _c_e_l_l and _r_e_a_l_m.  If _c_e_l_l is NULL, the local cell
     is used. If _r_e_a_l_m is NULL, the function tries to guess what realm to use.
     Unless you  have some good knowledge of what cell or realm to use, you
     should pass NULL.  kkrrbb__aaffsslloogg() will use the real user-id for the ViceId
     field in the token, kkrrbb__aaffsslloogg__uuiidd() will use _u_i_d.

     kk__aaffss__cceellll__ooff__ffiillee() will in _c_e_l_l return the cell of a specified file, no
     more than _l_e_n characters is put in _c_e_l_l.

     kk__ppiiooccttll() does a ppiiooccttll() syscall with the specified arguments. This
     function is equivalent to llppiiooccttll().

     kk__sseettppaagg() initializes a new PAG.

     kk__uunnlloogg() removes destroys all tokens in the current PAG.

RREETTUURRNN VVAALLUUEESS
     kk__hhaassaaffss() returns 1 if AFS is present in the kernel, 0 otherwise.
     kkrrbb__aaffsslloogg() and kkrrbb__aaffsslloogg__uuiidd() returns 0 on success, or a kerberos
     error number on failure.  kk__aaffss__cceellll__ooff__ffiillee(), kk__ppiiooccttll(), kk__sseettppaagg(),
     and kk__uunnlloogg() all return the value of the underlaying system call, 0 on
     success.

EENNVVIIRROONNMMEENNTT
     The following environment variable affect the mode of operation of kkaaffss:

     AFS_SYSCALL  Normally, kkaaffss will try to figure out the correct system
                  call(s) that are used by AFS by itself.  If it does not man-
                  age to do that, or does it incorrectly, you can set this
                  variable to the system call number or list of system call
                  numbers that should be used.

EEXXAAMMPPLLEESS
     The following code from llooggiinn will obtain a new PAG and tokens for the
     local cell and the cell of the users home directory.

     if (k_hasafs()) {
             char cell[64];
             k_setpag();
             if(k_afs_cell_of_file(pwd->pw_dir, cell, sizeof(cell)) == 0)
                     krb_afslog(cell, NULL);
             krb_afslog(NULL, NULL);
     }

EERRRROORRSS
     If any of these functions (apart from kk__hhaassaaffss()) is called without AFS
     beeing present in the kernel, the process will usually (depending on the
     operating system) receive a SIGSYS signal.

SSEEEE AALLSSOO
     Transarc Corporation, "File Server/Cache Manager Interface", _A_F_S_-_3
     _P_r_o_g_r_a_m_m_e_r_'_s _R_e_f_e_r_e_n_c_e, 1991.

BBUUGGSS
     AFS_SYSCALL has no effect under AIX.

KTH-KRB                           May 7, 1997                          KTH-KRB