Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jan 2015 02:00:09 +0000
From:      Marcin Cieslak <saper@saper.info>
To:        freebsd-hackers@FreeBSD.org, pjd@FreeBSD.org
Subject:   Do I need <geom/geom.h> in <geom/gate/g_gate.h> ?
Message-ID:  <alpine.BSF.2.11.1501240148560.91610@z.fncre.vasb>

next in thread | raw e-mail | index | archive | help
I am trying to write a GEOM gate module 
in C++ - for the project that is already
written 100% in C++ ....

Unfortunately, trying to #include <geom/gate/g_gate.h>
fails:

In file included from GEOMGate.cpp:1:
In file included from /usr/include/geom/gate/g_gate.h:37:
/usr/include/geom/geom.h:118:21: error: expected ';' after struct
        LIST_ENTRY(g_class)     class;
                           ^
/usr/include/geom/geom.h:118:22: error: declaration of anonymous class must be
      a definition
        LIST_ENTRY(g_class)     class;
                                ^
/usr/include/geom/geom.h:131:19: error: expected member name or ';' after
      declaration specifiers
        struct g_class          *class;
        ~~~~~~                   ^
/usr/include/geom/geom.h:186:10: error: expected member name or ';' after
      declaration specifiers
        void                    *private;
        ~~~~                     ^
/usr/include/geom/geom.h:215:10: error: expected member name or ';' after
      declaration specifiers
        void                    *private;
        ~~~~                     ^


I think C++ does not like using "class" in this context.

One idea would be to get rid of this word in <geom/geom.h>;
but I also noticed that including <geom/geom.h> in <geom/gate/g_gate.h>
does not seem necessary at all (as this is the userland interface).

At least our sample ggate userland programs compile fine without it,
and ggate kernel module includes <geom/geom.h> separately.

Would that be ok to remove seemingly unnecessary include directive?

//Marcin

[1] http://thread.gmane.org/gmane.os.freebsd.devel.hackers/52098



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.11.1501240148560.91610>