[OpenAFS-devel] starter patch for prototypes...

Nathan Neulinger nneul@umr.edu
Thu, 14 Feb 2002 15:34:55 -0600


--pf9I7BMVVzbSWLtt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

(This includes three local patches marked UMR-ONLY, I just haven't edited them out for this.)

Would appreciate hearing any comments on how this has been done... Documentation change for README.DEVEL
is in afsdoc.diff.

I'd also be interested in hearing if anyone has any trouble compiling with this patch applied. I've tested
on sun4x_56, and i386_linux24. 

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216

--pf9I7BMVVzbSWLtt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="afsdoc.diff"

Index: README.DEVEL
===================================================================
RCS file: /cvs/openafs/README.DEVEL,v
retrieving revision 1.2
diff -u -r1.2 README.DEVEL
--- README.DEVEL	2002/01/02 04:12:20	1.2
+++ README.DEVEL	2002/02/14 17:52:42
@@ -16,3 +16,51 @@
 Try to test builds using gmake -j # MAKE="gmake -j #", it seems like a good
 way to find missing or order-dependent dependency rules. (Is there a better
 way to do this?)
+
+-- Prototyping and Style --
+Prototypes for all source files in a given dir DDD should be placed
+int the file DDD/DDD_prototypes.h. All externally used (either API
+or used by other source files) routines and variables should be
+prototyped in this file.
+
+The prototypes should be a full prototype, with argument and return
+types. (Should not generate a warning with gcc -Wstrict-prototypes.)
+
+Format of the prototype files should look like:
+
+	Standard Copyright Notice
+
+	#ifdef AFS_SRC_DDD_PROTO_H
+	#define AFS_SRC_DDD_PROTO_H
+	
+	/* filename.c */
+	prototypes
+
+	/* filename.c */
+	prototypes
+
+	#endif /* AFS_SRC_DDD_PROTO_H */
+
+The declaration of the routines should be done in ANSI style: (can we 
+do this safely on all platforms? might want to use ansi2knr if not)
+
+	rettype routine(argtype arg)
+	{
+
+	}
+
+All routines should have a return type specified, void if nothing returned,
+and should have (void) if no arguments are taken. (still checking on this
+to make sure it works everywhere)
+
+Header files should not contain macros or other definitions unless they
+are used across multiple source files.
+
+All routines should be declared static if they are not used outside that 
+source file.
+
+Compiles on gcc-using machines should strive to handle using
+-Wstrict-prototypes -Werror. (this may take a while)
+
+Routines shall be defined in source prior to use if possible, and 
+prototyped in block at top of file if static.

--pf9I7BMVVzbSWLtt
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="afs.diff.bz2"
Content-Transfer-Encoding: base64

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
Fh1UTruaXaf2uJhqmzoz/+LuSKcKEgWlW6Lg

--pf9I7BMVVzbSWLtt--