Re: [hatari-devel] Patch for CAPS5 better support

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Nicolas,

This was a problem on Mac as well. I needed to get a diff from you that added these types to be able to compile.

tmbpr:hatari troed$ cat caps.diff
--- /home/npomarede/CAPSImage.framework/Headers/CommonTypes.h	2014-08-11 20:34:12.000000000 +0200
+++ ./CommonTypes.h	2014-07-01 00:13:39.000000000 +0200
@@ -2,9 +2,17 @@
 #define COMMONTYPES_H

 //-- Linux changes
-typedef int8_t BYTE;
-typedef int16_t WORD;
-typedef int32_t DWORD;
+#ifndef __cdecl
+#define __cdecl
+#endif
+
+typedef uint8_t BYTE;
+typedef uint16_t WORD;
+typedef uint32_t DWORD;
+
+typedef uint8_t  CapsUByte;
+typedef int32_t  CapsLong;
+typedef uint32_t CapsULong;
 //-- Linux changes

 typedef void *PVOID;


/Troed




‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On August 13, 2018 11:44 PM, Azamat Hackimov <azamat.hackimov@xxxxxxxxx> wrote:

> Hello.
>
> I downloaded CAPS5 from
> http://www.kryoflux.com/download/spsdeclib_5.1_source.zip and there no
> Caps[U]long types in headers.
>
> When I try to compile with it I got these errors (with my patch it
> compiles and runs fine):
>
> [ 69%] Building C object src/CMakeFiles/hatari.dir/hd6301_cpu.c.o
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:64:2: error:
> unknown type name 'CapsLong'
> CapsLong CapsImage[ MAX_FLOPPYDRIVES ]; /* Image Id or -1 if drive empty */
> ^~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:65:2: error:
> unknown type name 'CapsLong'
> CapsLong CapsImageType[ MAX_FLOPPYDRIVES ]; /* ImageType or -1 if not known */
> ^~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:86:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State );
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:87:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State );
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:88:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State );
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c: In function
> 'IPF_MemorySnapShot_Capture':
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:170:26: error:
> 'IPF_CallBack_Irq' undeclared (first u
> se in this function)
> IPF_State.Fdc.cbirq = IPF_CallBack_Irq;
> ^~~~~~~~~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:170:26: note:
> each undeclared identifier is reported
> only once for each function it appears in
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:171:26: error:
> 'IPF_CallBack_Drq' undeclared (first u
> se in this function); did you mean 'IPF_CallBack_Irq'?
> IPF_State.Fdc.cbdrq = IPF_CallBack_Drq;
> ^~~~~~~~~~~~~~~~
> IPF_CallBack_Irq
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:172:26: error:
> 'IPF_CallBack_Trk' undeclared (first u
> se in this function); did you mean 'IPF_CallBack_Drq'?
> IPF_State.Fdc.cbtrk = IPF_CallBack_Trk;
> ^~~~~~~~~~~~~~~~
> IPF_CallBack_Drq
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c: In function 'IPF_Init':
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:386:24: error:
> 'IPF_CallBack_Irq' undeclared (first u
> se in this function)
> IPF_State.Fdc.cbirq = IPF_CallBack_Irq;
> ^~~~~~~~~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:387:24: error:
> 'IPF_CallBack_Drq' undeclared (first u
> se in this function); did you mean 'IPF_CallBack_Irq'?
> IPF_State.Fdc.cbdrq = IPF_CallBack_Drq;
> ^~~~~~~~~~~~~~~~
> IPF_CallBack_Irq
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:388:24: error:
> 'IPF_CallBack_Trk' undeclared (first u
> se in this function); did you mean 'IPF_CallBack_Drq'?
> IPF_State.Fdc.cbtrk = IPF_CallBack_Trk;
> ^~~~~~~~~~~~~~~~
> IPF_CallBack_Drq
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c: In function
> 'IPF_Insert':
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:422:2: error:
> unknown type name 'CapsLong'
> CapsLong ImageId;
> ^~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:423:2: error:
> unknown type name 'CapsLong'
> CapsLong ImageType;
> ^~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:483:55: error:
> 'CapsULong' undeclared (first use in t
> his function)
> if ( CAPSLockImageMemory ( ImageId , pImageBuffer ,
> (CapsULong)ImageSize , DI_LOCK_MEMREF ) == imgeOk )
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:483:65: error:
> expected ')' before 'ImageSize'
> if ( CAPSLockImageMemory ( ImageId , pImageBuffer ,
> (CapsULong)ImageSize , DI_LOCK_MEMREF ) == imgeOk )
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:483:7: error:
> too few arguments to function 'CAPSLock
> ImageMemory'
> if ( CAPSLockImageMemory ( ImageId , pImageBuffer ,
> (CapsULong)ImageSize , DI_LOCK_MEMREF ) == imgeOk )
> ^~~~~~~~~~~~~~~~~~~
> In file included from /usr/include/caps5/CapsLibAll.h:9:0,
> from /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:33:
> /usr/include/caps5/CapsLib.h:21:15: note: declared here
> ExtSub SDWORD CAPSLockImageMemory(SDWORD id, PUBYTE buffer, UDWORD
> length, UDWORD flag);
> ^~~~~~~~~~~~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c: At top level:
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:716:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Trk ( struct CapsFdc *pc , CapsULong State )
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:745:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Irq ( struct CapsFdc *pc , CapsULong State )
> ^~~~~~~~~
> /home/winterheart/playground/hg/hatari/src/floppy_ipf.c:764:53: error:
> unknown type name 'CapsULong'
> static void IPF_CallBack_Drq ( struct CapsFdc *pc , CapsULong State )
> ^~~~~~~~~
> make[2]: *** [src/CMakeFiles/hatari.dir/build.make:519:
> src/CMakeFiles/hatari.dir/floppy_ipf.c.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [CMakeFiles/Makefile2:167: src/CMakeFiles/hatari.dir/all] Error 2
> make: *** [Makefile:141: all] Error 2
>
> вс, 12 авг. 2018 г. в 23:39, Nicolas Pomarède npomarede@xxxxxxxxxxxx:
>
> > Le 12/08/2018 à 00:25, Azamat Hackimov a écrit :
> >
> > > Hello.
> > > I'm working on porting Hatari 2.1.0 to one of Linux distributives. Here
> > > patch with changes, that fixes some build failures with CAPS5 library
> > > (or spsdeclib in my distribution).
> >
> > Hi
> > I'm rot really sure about your patch bein required ; caps lib 5.1 was
> > released in june 2014 (I worked on this with the SPS guys) and this
> > version uses Caps[U]long, they were not dropped.
> > Maybe it's in your linux distrib that they modified the headers ? But
> > that's not how it was released upstream, and Hatari compile fines with
> > caps lib 5.1.
> > Nicolas
>
> --
>
> From Siberia with Love!




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/