Import of historical isdn4linux CVS tree ('isdn' module)
Go to file
Kai Germaschewski 970c99e55b we keep track of outstanding packets (given to HL, but not confirmed yet)
now, but we don't use it for flow control yet.
2000-03-17 16:22:55 +00:00
Documentation Added example for PtP configuration. 2000-03-06 16:38:43 +00:00
drivers/isdn we keep track of outstanding packets (given to HL, but not confirmed yet) 2000-03-17 16:22:55 +00:00
include/linux we keep track of outstanding packets (given to HL, but not confirmed yet) 2000-03-17 16:22:55 +00:00
.config Cosmetic stuff, adds for diehl 1998-06-17 22:17:59 +00:00
Makefile Na? 1999-08-31 23:52:57 +00:00
README.preparser add preparser tool see README.preparser 1999-09-12 16:36:44 +00:00
Rules.make Changed install target to modules_install 1997-03-24 23:04:49 +00:00
do_indent make it a little bit foolprof 1999-10-11 22:12:52 +00:00
preparser if only a ";" is left, remove the whole line 1999-10-11 22:14:14 +00:00
stackcheck Bugfix. 1999-04-12 14:52:28 +00:00
std2kern Added hysdn directory to file 2000-02-14 18:20:07 +00:00
stddiff Added hysdn directory 2000-02-14 19:20:53 +00:00
v2.2.13.ctrl 2.3.99 contains MPPP constants which cause a warning because we 2000-03-17 10:43:56 +00:00
v2.2.ctrl 2.3.99 contains MPPP constants which cause a warning because we 2000-03-17 10:43:56 +00:00
v2.3.ctrl 2.3.99 contains MPPP constants which cause a warning because we 2000-03-17 10:43:56 +00:00

README.preparser

"preparser" is a little tool to resolve special macros and conditional 
preprocessor code in C files. 

The special marcro and conditions are given in a control file.

The control file use the same syntax like the C preprocessor directives
"#define" and "#undef" plus a "#delete" command.
You can also use C-Comments in it.
Here are 2 implicit conditional defines in "preparser" for "#if 0"
and "#if 1" code segments.

Control file syntax:

#delete <item to delete>
#define <name> <value>
#undef <name>

<name> maybe also a function. 

/* example control file */
#delete #include <linux/isdn_compat.h>
#define GET_USER get_user
#define PUT_USER put_user
#define idev_kfree_skb(a,b) dev_kfree_skb(a)
#define COMPAT_HAS_NEW_SYMTAB
#undef COMPAT_HAS_NEW_SETUP
/* end of example control file */

What does the Programm ?
1. It copies a input file into a output file (or stdout) 
2. While copying it deletes all items given in #delete (exact string
   matching).
3. While copying it resolve the marcros given in the control file.
4. It resolve any "#ifdef" "#ifndef" "#if" related to the marcros given in
   the control file. Note: in the moment it don't calculate a value after
   an "#if" directive, if here is a "#define" in the control file for
   the string after "#if" and the value of that "#define" is empty, "#if" is
   handled as false, if a value is given it is handled as true. 
5. All items inside "strings" or C comments are not modified. 

Usage

   ./preparser [options] <input file> [output file]

     Valid options are:

  -d                  increase debug level
  -c,-C <controlfile> Use control file
  -?                  Usage ; printout this information


"preparser" was written to write Linux portable Linux kernel code (portable
in the sense "portable between various kernel versions") and to remove
experimental code from C files. This avoid that contructs based on
KERNELVERSION are going into standard kernel.


Karsten Keil
keil@isdn4linux.de

PS: If you like to get the source, request it by mail.