svn commit: r249311 - in head: include/protocols sys/sys

Ed Schouten ed at FreeBSD.org
Tue Apr 9 16:16:36 UTC 2013


Author: ed
Date: Tue Apr  9 16:16:34 2013
New Revision: 249311
URL: http://svnweb.freebsd.org/changeset/base/249311

Log:
  Add static/const keywords to the arrays.
  
  This theoretically allows a compiler to optimize (parts of) the array
  away if unused.
  
  While there, make the array size implicit and use a _Static_assert() to
  ensure that the definition matches up with the number of elements in the
  list.

Modified:
  head/include/protocols/timed.h
  head/sys/sys/syslog.h
  head/sys/sys/ttydefaults.h

Modified: head/include/protocols/timed.h
==============================================================================
--- head/include/protocols/timed.h	Tue Apr  9 15:35:26 2013	(r249310)
+++ head/include/protocols/timed.h	Tue Apr  9 16:16:34 2013	(r249311)
@@ -90,11 +90,13 @@ struct tsp {
 #define	TSPTYPENUMBER		25
 
 #ifdef TSPTYPES
-const char *tsptype[TSPTYPENUMBER] =
+static char const * const tsptype[] =
   { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",
   "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",
   "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ",
   "TEST", "SETDATE", "SETDATEREQ", "LOOP" };
+_Static_assert(sizeof(tsptype) / sizeof(const char *) == TSPTYPENUMBER,
+    "Size of tsptype does not match TSPTYPENUMBER");
 #endif
 
 #endif /* !_TIMED_H_ */

Modified: head/sys/sys/syslog.h
==============================================================================
--- head/sys/sys/syslog.h	Tue Apr  9 15:35:26 2013	(r249310)
+++ head/sys/sys/syslog.h	Tue Apr  9 16:16:34 2013	(r249311)
@@ -69,7 +69,7 @@ typedef struct _code {
 	int		c_val;
 } CODE;
 
-CODE prioritynames[] = {
+static const CODE prioritynames[] = {
 	{ "alert",	LOG_ALERT,	},
 	{ "crit",	LOG_CRIT,	},
 	{ "debug",	LOG_DEBUG,	},
@@ -122,7 +122,7 @@ CODE prioritynames[] = {
 #define	LOG_FAC(p)	(((p) & LOG_FACMASK) >> 3)
 
 #ifdef SYSLOG_NAMES
-CODE facilitynames[] = {
+static const CODE facilitynames[] = {
 	{ "auth",	LOG_AUTH,	},
 	{ "authpriv",	LOG_AUTHPRIV,	},
 	{ "console", 	LOG_CONSOLE,	},

Modified: head/sys/sys/ttydefaults.h
==============================================================================
--- head/sys/sys/ttydefaults.h	Tue Apr  9 15:35:26 2013	(r249310)
+++ head/sys/sys/ttydefaults.h	Tue Apr  9 16:16:34 2013	(r249311)
@@ -95,10 +95,17 @@
  * #define TTYDEFCHARS to include an array of default control characters.
  */
 #ifdef TTYDEFCHARS
-static cc_t	ttydefchars[NCCS] = {
-	CEOF,	CEOL,	CEOL,	CERASE, CWERASE, CKILL, CREPRINT,
-	CERASE2, CINTR,	CQUIT,	CSUSP,	CDSUSP,	CSTART,	CSTOP,	CLNEXT,
-	CDISCARD, CMIN,	CTIME,  CSTATUS, _POSIX_VDISABLE
+
+#include <sys/cdefs.h>
+#include <sys/_termios.h>
+
+static const cc_t ttydefchars[] = {
+	CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, CERASE2, CINTR,
+	CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, CDISCARD, CMIN, CTIME,
+	CSTATUS, _POSIX_VDISABLE
 };
+_Static_assert(sizeof(ttydefchars) / sizeof(cc_t) == NCCS,
+    "Size of ttydefchars does not match NCCS");
+
 #undef TTYDEFCHARS
-#endif
+#endif /* TTYDEFCHARS */


More information about the svn-src-all mailing list