libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libcdio-devel] [RFC] New API iso9660_statv2_t as API/ABI compatible


From: Thomas Schmitt
Subject: Re: [Libcdio-devel] [RFC] New API iso9660_statv2_t as API/ABI compatible way to read files >= 4 GiB
Date: Tue, 10 Jul 2018 09:02:54 +0200

Hi,

i wrote:
> > * Where to declare semi-public methods of iso_rock_statbuf_t ?
> > Would it be appropriate to include
> >   include/iso9660/rock.h
> > in
> >   lib/iso9660/iso9660_private.h
> > ?

Rock Bernstein wrote:
> I don't see why not: rock.h is a public interface and libiso9660 already
> depends on libcdio.

I can't get it to work.

If i put my function declarations into lib/iso9660/iso9660_private.h
then i get

  In file included from iso9660.c:28:0:
  iso9660_private.h:81:42: error: unknown type name 'iso_rock_statbuf_t'
   bool iso9660_rock_statbuf_clone_entrails(iso_rock_statbuf_t *target,

iso_rock_statbuf_t is declared in <cdio/rock.h>. But if i include that
file in lib/iso9660/iso9660_private.h i get

  In file included from iso9660_private.h:35:0,
                   from iso9660.c:28:
  ../../include/cdio/rock.h:107:3: error: unknown type name 'iso711_t'
     iso711_t      len_id;  /**< Identifier length. Value 10?. */

iso711_t is declared in <cdio/iso9660.h>. But if i include it, i get

  iso9660.c:171:1: error: conflicting types for 'iso9660_get_dtime'
   iso9660_get_dtime (const iso9660_dtime_t *idr_date, bool b_localtime,
   ^
  In file included from iso9660_private.h:34:0,
                   from iso9660.c:28:
  ../../include/cdio/iso9660.h:803:8: note: previous declaration of 
'iso9660_get_dtime' was here
     bool iso9660_get_dtime (const iso9660_dtime_t *idr_date, bool b_localtime,

Now i'm stuck. Why shall there be a conflict ? The prototypes match.
iso9660.c already included <cdio/iso9660.h>.
Why does it get mad when i let iso9660_private.h include it too.

---------------------------------------------------------------------

The problem still needs a solution.

The functions are called iso9660_fs.c and implemented in rock.c.

  bool iso9660_rock_statbuf_clone_entrails(iso_rock_statbuf_t *target,
                                           iso_rock_statbuf_t *source);

  bool iso9660_rock_statbuf_init(iso_rock_statbuf_t *target);

  void iso9660_rock_statbuf_free_entrails(iso_rock_statbuf_t *target);


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]