diff options
author | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2004-03-03 03:47:04 +0000 |
---|---|---|
committer | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2004-03-03 03:47:04 +0000 |
commit | 9ef4282e9e32e857f4d0cac9df6d58f2cba159f4 (patch) | |
tree | 723676ea31fe0615b4d0caca1491e5a21fe85c7a /drv_generic_parport.c | |
parent | d0b39b590e56b191394cfcb6b8690de0fbd87957 (diff) | |
download | lcd4linux-9ef4282e9e32e857f4d0cac9df6d58f2cba159f4.tar.gz |
[lcd4linux @ 2004-03-03 03:47:04 by reinelt]
big patch from Martin Hejl:
- use qprintf() where appropriate
- save CPU cycles on gettimeofday()
- add quit() functions to free allocated memory
- fixed lots of memory leaks
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@384 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to '')
-rw-r--r-- | drv_generic_parport.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drv_generic_parport.c b/drv_generic_parport.c index 68d537f..c9aac3d 100644 --- a/drv_generic_parport.c +++ b/drv_generic_parport.c @@ -1,4 +1,4 @@ -/* $Id: drv_generic_parport.c,v 1.2 2004/01/20 15:32:49 reinelt Exp $ +/* $Id: drv_generic_parport.c,v 1.3 2004/03/03 03:47:04 reinelt Exp $ * * generic driver helper for serial and parport access * @@ -23,6 +23,13 @@ * * * $Log: drv_generic_parport.c,v $ + * Revision 1.3 2004/03/03 03:47:04 reinelt + * big patch from Martin Hejl: + * - use qprintf() where appropriate + * - save CPU cycles on gettimeofday() + * - add quit() functions to free allocated memory + * - fixed lots of memory leaks + * * Revision 1.2 2004/01/20 15:32:49 reinelt * first version of Next Generation HD44780 (untested! but it compiles...) * some cleanup in the other drivers @@ -85,6 +92,7 @@ #include "cfg.h" #include "udelay.h" #include "drv_generic_parport.h" +#include "qprintf.h" static char *Driver=""; @@ -120,6 +128,7 @@ int drv_generic_parport_open (char *section, char *driver) Port=0; PPdev=s; #else + free(s); error ("%s: bad %s.Port '%s' from %s", Driver, Section, s, cfg_source()); return -1; #endif @@ -183,6 +192,7 @@ int drv_generic_parport_close (void) error ("%s: close(%s) failed: %s", Driver, PPdev, strerror(errno)); return -1; } + free(PPdev); } else #endif { @@ -199,6 +209,7 @@ int drv_generic_parport_close (void) } } } + return 0; } @@ -209,7 +220,7 @@ unsigned char drv_generic_parport_wire_ctrl (char *name, unsigned char *deflt) char wire[256]; char *s; - snprintf (wire, sizeof(wire), "Wire.%s", name); + qprintf(wire, sizeof(wire), "Wire.%s", name); s=cfg_get (Section, wire, deflt); if (strcasecmp(s,"STROBE")==0) { w=PARPORT_CONTROL_STROBE; @@ -226,6 +237,7 @@ unsigned char drv_generic_parport_wire_ctrl (char *name, unsigned char *deflt) error ("%s: should be STROBE, AUTOFD, INIT, SELECT or GND", Driver); return 0xff; } + free(s); if (w&PARPORT_CONTROL_STROBE) { info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:STROBE]", Driver, name); @@ -253,7 +265,7 @@ unsigned char drv_generic_parport_wire_data (char *name, unsigned char *deflt) char wire[256]; char *s; - snprintf (wire, sizeof(wire), "Wire.%s", name); + qprintf(wire, sizeof(wire), "Wire.%s", name); s=cfg_get (Section, wire, deflt); if(strlen(s)==3 && strncasecmp(s,"DB",2)==0 && s[2]>='0' && s[2]<='7') { w=s[2]-'0'; @@ -264,7 +276,7 @@ unsigned char drv_generic_parport_wire_data (char *name, unsigned char *deflt) error ("%s: should be DB0..7 or GND", Driver); return 0xff; } - + free(s); if (w==0) { info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:GND]", Driver, name); } else { |