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