weeding out c++ keywords from sys/sys

Andriy Gapon avg at icyb.net.ua
Fri Feb 13 10:25:36 PST 2009


Proposal:
Make header files in sys/sys C++-friendly.

Rationale:
There are people who write FreeBSD drivers in C++, the driver code needs
to include some headers from sys/sys and it causes some pain if the
headers contain reserved C++ keywords.

Scope:
Very limited. This is not about making the whole kernel compilable by a
C++ compiler. And not about making all sources "future"-proof, just
about making life a little bit easier for a few fellows.

Efforts:
Non-trivial effort would be needed only for conflicts in types/fields
definitions. Function params for prototypes and typedef are low hanging
fruits.

Start:
diff --git a/sys/sys/conf.h b/sys/sys/conf.h
index 9d8da2c..b7f9df6 100644
--- a/sys/sys/conf.h
+++ b/sys/sys/conf.h
@@ -145,7 +145,7 @@ typedef int d_spare2_t(struct cdev *dev);

 typedef int dumper_t(
 	void *priv,		/* Private to the driver. */
-	void *virtual,		/* Virtual (mapped) address. */
+	void *virt,		/* Virtual (mapped) address. */
 	vm_offset_t physical,	/* Physical address of virtual. */
 	off_t offset,		/* Byte-offset to write at. */
 	size_t length);		/* Number of bytes to dump. */
diff --git a/sys/sys/lock_profile.h b/sys/sys/lock_profile.h
index f2861ac..7e7f666 100644
--- a/sys/sys/lock_profile.h
+++ b/sys/sys/lock_profile.h
@@ -160,7 +160,7 @@ static inline void
lock_profile_obtain_lock_failed(struct lock_object *lo, int *
 static inline void lock_profile_obtain_lock_success(struct lock_object
*lo, int contested, uint64_t waittime,
 						    const char *file, int line) {;}
 static inline void lock_profile_object_destroy(struct lock_object *lo) {;}
-static inline void lock_profile_object_init(struct lock_object *lo,
struct lock_class *class, const char *name) {;}
+static inline void lock_profile_object_init(struct lock_object *lo,
struct lock_class *clazz, const char *name) {;}

 #endif /* _KERNEL */


-- 
Andriy Gapon


More information about the freebsd-current mailing list