Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / doc / txt / file-reorg
CommitLineData
805e021f
CE
1Copyright 2000, International Business Machines Corporation and others.
2All Rights Reserved.
3
4This software has been released under the terms of the IBM Public
5License. For details, see the LICENSE file in the top-level source
6directory or online at http://www.openafs.org/dl/license10.html
7
8AFS file reorganization
9
10Many files in the afs and rx directories were either moved or split up to
11facilitate readability and hence maintenance. As there is no DOC directory
12as yet in RX, it is included here. Also, MakefileProto was split into
13operating system specific MakefileProto.<os> files. The common elements are
14in Makefile.common, which is included by all the MakefileProto.<os>'s.
15In addition, the subdirectory where the objects are compiled and the libraries
16are compiled have been named either "STATIC" or "MODLOAD" depending on the
17type of the client. There are no more separate NFS and no-NFS directories. The
18NFS translator specific object files all have _nfs suffixes, for example,
19afs_call_nfs.o.
20
21RX
22The rx directory now has operating system specific directories. The Unix
23operating systems use these for kernel code only. Each presently has 2 files,
24rx_kmutex.h and rx_knet.c. rx_kmutex.h contains that operating system's
25locking macros for kernel RX that were in the now removed rx_machdep.h.
26rx_knet.c contains the system specific parts from rx_kernel.c. This includes
27a separate rxk_input for each system. In the afs directory, afs_osinet.c was
28also split up. osi_NetSend was moved to these rx_knet.c directories.
29
30RX Summary:
31rx_machdep.h -> rx_lwp.h (user space parts)
32 -> <os>/rx_kmutex.h (kernel parts)
33rx_kernel.c -> <os>/rx_knet.c
34osi_NetSend -> <os>/rx_knet.c
35
36AFS
37Files in the afs directory were broken up either because of the messy #ifdef's
38or because of the size of the file, and in particular, the RCS version of
39the file. For example, RCS/afs_vnodeops,v is nearly 10 Meg. Files in the
40operating system specific directories are all prefixed with osi_ (operating
41system interface). Each must have at least an osi_groups.c and an osi_machdep.h
42file. The first implements setgroups/getgroups and the latter implements the
43kernel locking macros for AFS.
44
45
46AFS Summary:
47afs_vnodeops.c -> VNOPS/*.c (one file per class of vnode op)
48 afs_osi_pag.c
49 afs_osi_uio.c
50 <os>/osi_groups.c
51afs_cache.c -> afs_dcache.c and afs_vcache.c afs_segments.c
52afs_resource.c -> afs_analyze.c
53 afs_cell.c
54 afs_conn.c
55 afs_user.c
56 afs_server.c
57 afs_volume.c
58 afs_util.c
59 afs_init.c
60
61afs_osinet.c -> rx_knet.c (osi_NetSend)
62 afs_osi_alloc.c
63 afs_osi_sleep.c
64osi.h -> afs_osi.h
65 <os>/osi_machdep.h
66
67Several operating system interface files were moved to their appropritate
68osi directories:
69AIX: afs_aixops.c -> osi_vnodeops.c
70 afs_aix_subr.c -> osi_misc.c
71 afs_config.c -> osi_config.c osi_timeout.c
72 aix_vfs.h -> osi_vfs.h
73 misc.s -> osi_assem.s
74
75DUX: afs_vnodeops.c -> osi_vnodeops.c (DUX specific code)
76
77HPUX: afs_vnodeops.c -> osi_vnodeops.c (HPUX specific code)
78 afs_hp_debug.c -> osi_debug.c
79 hpux_proc_private.h -> osi_proc_private.h
80 hpux_vfs.h -> osi_vfs.h
81
82IRIX: afs_sgiops.c -> osi_idbg.c osi_groups.c osi_misc.c osi_vnodeops.c
83 sgi_vfs.h -> osi_vfs.h
84
85SOLARIS: afs_sun_subr.c -> osi_vnodeops.c
86 osi_prototypes.h (new header file)
87
88afs_mariner.c is centralizes the mariner code, which was plucked from both
89afs_cache.c and afs_vnodeops.c