From 606b07d2491b9af620d95cb24f193f3533cfb386 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 19 Nov 2014 14:19:05 +0100 Subject: grt: use unlocked version of getc/putc/feof to speed-up files. --- src/grt/grt-cbinding.c | 24 ++++++++++++++++++++++++ src/grt/grt-stdio.ads | 6 +++--- 2 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/grt/grt-cbinding.c b/src/grt/grt-cbinding.c index b95c0f0a9..1083d5824 100644 --- a/src/grt/grt-cbinding.c +++ b/src/grt/grt-cbinding.c @@ -70,6 +70,30 @@ __ghdl_fprintf_clock (FILE *stream, int a, int b) fprintf (stream, "%3d.%03d", a, b); } +#ifndef getc_unlocked +int +getc_unlocked (FILE *stream) +{ + return getc (stream); +} +#endif + +#ifndef putc_unlocked +int +putc_unlocked (int c, FILE *stream) +{ + return putc (c, stream); +} +#endif + +#ifndef feof_unlocked +int +feof_unlocked (FILE *stream) +{ + return feof (stream); +} +#endif + #ifndef WITH_GNAT_RUN_TIME void __gnat_last_chance_handler (void) diff --git a/src/grt/grt-stdio.ads b/src/grt/grt-stdio.ads index 990fc74b1..9084eab82 100644 --- a/src/grt/grt-stdio.ads +++ b/src/grt/grt-stdio.ads @@ -86,14 +86,14 @@ private pragma Import (C, fread); pragma Import (C, fputs); - pragma Import (C, fputc); + pragma Import (C, fputc, "putc_unlocked"); - pragma Import (C, fgetc); + pragma Import (C, fgetc, "getc_unlocked"); pragma Import (C, fgets); pragma Import (C, ungetc); pragma Import (C, fflush); - pragma Import (C, feof); + pragma Import (C, feof, "feof_unlocked"); pragma Import (C, ftell); pragma Import (C, fclose); -- cgit v1.2.3