On Wed, Apr 27, 2011 at 12:28 PM, Tommi Virtanen <tommi.virtanen@xxxxxxxxxxxxx> wrote: > On Wed, Apr 27, 2011 at 11:49:11AM -0700, Brian Chrisman wrote: >> ceph_mount_t is forward declared as a struct in libceph.h. >> When referencing that within libceph.h, gcc barfs: >> client/libceph.h:32: error: expected ‘)’ before ‘*’ token >> >> Is libceph.h intended to be used in C-programs, and if so, am I using >> it incorrectly? >> ceph_mount_t is defined as a class in libceph.cc, and I'm unclear on >> how that would be translated into a struct for C-programs linking to >> libceph. > > We talked about this on IRC, replying here for others & historical > records. > > The problem is this: > > struct ceph_mount_t; > > int ceph_create(ceph_mount_t **cmount, const char * const id); > > There is no ceph_mount_t. Changing the prototype to > > int ceph_create(struct ceph_mount_t **cmount, const char * const id); > > should get things going nicely (as long as you fix up the > implementation also). Yeah, the struct keyword needs to be added for the benefit of C clients. Sorry for any confusion. regards, Colin > > > > (And in case someone is thinking about suggesting a typedef, I'm with > the other Finn on this one: > http://lkml.indiana.edu/hypermail/linux/kernel/0206.1/0402.html > ) > > -- > :(){ :|:&};: > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html