[DRBD-cvs] svn commit by lars - r2307 - trunk/user - * renamed yyparse to my_parse * piped drbdadm_parser.c

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Fri Jul 28 15:33:14 CEST 2006


Author: lars
Date: 2006-07-28 15:33:13 +0200 (Fri, 28 Jul 2006)
New Revision: 2307

Modified:
   trunk/user/drbdadm_main.c
   trunk/user/drbdadm_parser.c
Log:
* renamed yyparse to my_parse 
* piped drbdadm_parser.c through Lindent
  (only whitespace changes)



Modified: trunk/user/drbdadm_main.c
===================================================================
--- trunk/user/drbdadm_main.c	2006-07-28 11:45:47 UTC (rev 2306)
+++ trunk/user/drbdadm_main.c	2006-07-28 13:33:13 UTC (rev 2307)
@@ -78,7 +78,7 @@
   struct deferred_cmd* next;
 };
 
-extern int yyparse();
+extern int my_parse();
 extern int yydebug;
 extern FILE* yyin;
 
@@ -1641,7 +1641,7 @@
   };
 
   //yydebug = 1;
-  yyparse();
+  my_parse();
 
   if(!config_valid) exit(E_config_invalid);
 

Modified: trunk/user/drbdadm_parser.c
===================================================================
--- trunk/user/drbdadm_parser.c	2006-07-28 11:45:47 UTC (rev 2306)
+++ trunk/user/drbdadm_parser.c	2006-07-28 13:33:13 UTC (rev 2307)
@@ -51,161 +51,155 @@
   _l;					      \
 })
 
-static int   c_section_start;
+static int c_section_start;
 
-void
-m_strtoll_range(const char *s, char def_unit,
-		const char *name,
-		unsigned long long min, unsigned long long max)
+void m_strtoll_range(const char *s, char def_unit,
+		     const char *name,
+		     unsigned long long min, unsigned long long max)
 {
-  unsigned long long r = m_strtoll(s, def_unit);
-  char unit[] = { def_unit > '1' ? def_unit : 0, 0 };
-  if (min > r || r > max)
-    {
-      fprintf(stderr,
-	      "%s:%d: %s %s => %llu%s out of range [%llu..%llu]%s.\n",
-	      config_file, fline, name, s, r, unit, min, max, unit);
-      exit(E_config_invalid);
-    }
-  if (DEBUG_RANGE_CHECK)
-    {
-      fprintf(stderr,
-	      "%s:%d: %s %s => %llu%s in range [%llu..%llu]%s.\n",
-	      config_file, fline, name, s, r, unit, min, max, unit);
-    }
+	unsigned long long r = m_strtoll(s, def_unit);
+	char unit[] = { def_unit > '1' ? def_unit : 0, 0 };
+	if (min > r || r > max) {
+		fprintf(stderr,
+			"%s:%d: %s %s => %llu%s out of range [%llu..%llu]%s.\n",
+			config_file, fline, name, s, r, unit, min, max, unit);
+		exit(E_config_invalid);
+	}
+	if (DEBUG_RANGE_CHECK) {
+		fprintf(stderr,
+			"%s:%d: %s %s => %llu%s in range [%llu..%llu]%s.\n",
+			config_file, fline, name, s, r, unit, min, max, unit);
+	}
 }
 
-
-void
-range_check(const enum range_checks what, const char *name, const char *value)
+void range_check(const enum range_checks what, const char *name,
+		 const char *value)
 {
-  switch (what)
-    {
-    case R_NO_CHECK: 
-      break;
-    default:
-      fprintf(stderr, "%s:%d: unknown range for %s => %s\n",
-	      config_file, fline, name, value);
-      break;
-    case R_MINOR_COUNT:
-      m_strtoll_range(value, 1, name,
-		      DRBD_MINOR_COUNT_MIN, DRBD_MINOR_COUNT_MAX);
-      break;
-    case R_DIALOG_REFRESH:
-      m_strtoll_range(value, 1, name,
-		      DRBD_DIALOG_REFRESH_MIN, DRBD_DIALOG_REFRESH_MAX);
-      break;
-    case R_DISK_SIZE:
-      m_strtoll_range(value, 'K', name,
-		      DRBD_DISK_SIZE_SECT_MIN >> 1,
-		      DRBD_DISK_SIZE_SECT_MAX >> 1);
-      break;
-    case R_TIMEOUT:
-      m_strtoll_range(value, 1, name, DRBD_TIMEOUT_MIN, DRBD_TIMEOUT_MAX);
-      break;
-    case R_CONNECT_INT:
-      m_strtoll_range(value, 1, name, DRBD_CONNECT_INT_MIN,
-		      DRBD_CONNECT_INT_MAX);
-      break;
-    case R_PING_INT:
-      m_strtoll_range(value, 1, name, DRBD_PING_INT_MIN, DRBD_PING_INT_MAX);
-      break;
-    case R_MAX_BUFFERS:
-      m_strtoll_range(value, 1, name, DRBD_MAX_BUFFERS_MIN,
-		      DRBD_MAX_BUFFERS_MAX);
-      break;
-    case R_MAX_EPOCH_SIZE:
-      m_strtoll_range(value, 1, name, DRBD_MAX_EPOCH_SIZE_MIN,
-		      DRBD_MAX_EPOCH_SIZE_MAX);
-      break;
-    case R_SNDBUF_SIZE:
-      m_strtoll_range(value, 1, name, DRBD_SNDBUF_SIZE_MIN,
-		      DRBD_SNDBUF_SIZE_MAX);
-      break;
-    case R_KO_COUNT:
-      m_strtoll_range(value, 1, name, DRBD_KO_COUNT_MIN, DRBD_KO_COUNT_MAX);
-      break;
-    case R_RATE:
-      m_strtoll_range(value, 'K', name, DRBD_RATE_MIN, DRBD_RATE_MAX);
-      break;
-    case R_AL_EXTENTS:
-      m_strtoll_range(value, 1, name, DRBD_AL_EXTENTS_MIN,
-		      DRBD_AL_EXTENTS_MAX);
-      break;
-    case R_PORT:
-      m_strtoll_range(value, 1, name, DRBD_PORT_MIN, DRBD_PORT_MAX);
-      break;
-      /* FIXME not yet implemented!
-         case R_META_IDX:
-         m_strtoll_range(value, 1, name, DRBD_META_IDX_MIN, DRBD_META_IDX_MAX);
-         break;
-       */
-    case R_WFC_TIMEOUT:
-      m_strtoll_range(value, 1, name, DRBD_WFC_TIMEOUT_MIN,
-		      DRBD_WFC_TIMEOUT_MAX);
-      break;
-    case R_DEGR_WFC_TIMEOUT:
-      m_strtoll_range(value, 1, name, DRBD_DEGR_WFC_TIMEOUT_MIN,
-		      DRBD_DEGR_WFC_TIMEOUT_MAX);
-      break;
-    }
+	switch (what) {
+	case R_NO_CHECK:
+		break;
+	default:
+		fprintf(stderr, "%s:%d: unknown range for %s => %s\n",
+			config_file, fline, name, value);
+		break;
+	case R_MINOR_COUNT:
+		m_strtoll_range(value, 1, name,
+				DRBD_MINOR_COUNT_MIN, DRBD_MINOR_COUNT_MAX);
+		break;
+	case R_DIALOG_REFRESH:
+		m_strtoll_range(value, 1, name,
+				DRBD_DIALOG_REFRESH_MIN,
+				DRBD_DIALOG_REFRESH_MAX);
+		break;
+	case R_DISK_SIZE:
+		m_strtoll_range(value, 'K', name,
+				DRBD_DISK_SIZE_SECT_MIN >> 1,
+				DRBD_DISK_SIZE_SECT_MAX >> 1);
+		break;
+	case R_TIMEOUT:
+		m_strtoll_range(value, 1, name, DRBD_TIMEOUT_MIN,
+				DRBD_TIMEOUT_MAX);
+		break;
+	case R_CONNECT_INT:
+		m_strtoll_range(value, 1, name, DRBD_CONNECT_INT_MIN,
+				DRBD_CONNECT_INT_MAX);
+		break;
+	case R_PING_INT:
+		m_strtoll_range(value, 1, name, DRBD_PING_INT_MIN,
+				DRBD_PING_INT_MAX);
+		break;
+	case R_MAX_BUFFERS:
+		m_strtoll_range(value, 1, name, DRBD_MAX_BUFFERS_MIN,
+				DRBD_MAX_BUFFERS_MAX);
+		break;
+	case R_MAX_EPOCH_SIZE:
+		m_strtoll_range(value, 1, name, DRBD_MAX_EPOCH_SIZE_MIN,
+				DRBD_MAX_EPOCH_SIZE_MAX);
+		break;
+	case R_SNDBUF_SIZE:
+		m_strtoll_range(value, 1, name, DRBD_SNDBUF_SIZE_MIN,
+				DRBD_SNDBUF_SIZE_MAX);
+		break;
+	case R_KO_COUNT:
+		m_strtoll_range(value, 1, name, DRBD_KO_COUNT_MIN,
+				DRBD_KO_COUNT_MAX);
+		break;
+	case R_RATE:
+		m_strtoll_range(value, 'K', name, DRBD_RATE_MIN, DRBD_RATE_MAX);
+		break;
+	case R_AL_EXTENTS:
+		m_strtoll_range(value, 1, name, DRBD_AL_EXTENTS_MIN,
+				DRBD_AL_EXTENTS_MAX);
+		break;
+	case R_PORT:
+		m_strtoll_range(value, 1, name, DRBD_PORT_MIN, DRBD_PORT_MAX);
+		break;
+		/* FIXME not yet implemented!
+		   case R_META_IDX:
+		   m_strtoll_range(value, 1, name, DRBD_META_IDX_MIN, DRBD_META_IDX_MAX);
+		   break;
+		 */
+	case R_WFC_TIMEOUT:
+		m_strtoll_range(value, 1, name, DRBD_WFC_TIMEOUT_MIN,
+				DRBD_WFC_TIMEOUT_MAX);
+		break;
+	case R_DEGR_WFC_TIMEOUT:
+		m_strtoll_range(value, 1, name, DRBD_DEGR_WFC_TIMEOUT_MIN,
+				DRBD_DEGR_WFC_TIMEOUT_MAX);
+		break;
+	}
 }
 
-static struct d_option* new_opt(char* name,char* value)
+static struct d_option *new_opt(char *name, char *value)
 {
-	struct d_option* cn = malloc(sizeof(struct d_option));
+	struct d_option *cn = malloc(sizeof(struct d_option));
 
 	/* fprintf(stderr,"%s:%d: %s = %s\n",config_file,line,name,value); */
-	cn->name=name;
-	cn->value=value;
-	cn->mentioned=0;
-	cn->is_default=0;
+	cn->name = name;
+	cn->value = value;
+	cn->mentioned = 0;
+	cn->is_default = 0;
 
 	return cn;
 }
-
-static void derror(struct d_host_info *host,
-		   struct d_resource* res,
-		   char* text)
+static void derror(struct d_host_info *host, struct d_resource *res, char *text)
 {
-	config_valid=0;
+	config_valid = 0;
 	fprintf(stderr, "%s:%d: in resource %s, on %s { ... }:"
 		" '%s' keyword missing.\n",
-		config_file,c_section_start,res->name,host->name,text);
+		config_file, c_section_start, res->name, host->name, text);
 }
 
 void check_meta_disk(struct d_host_info *host)
 {
-  if (strcmp(host->meta_disk, "internal") != 0) {
-    /* external */
-    if (host->meta_index == NULL) {
-      fprintf(stderr, "%s:%d: expected 'meta-disk = %s [index]'.\n",
-	      config_file, fline, host->meta_disk);
-    }
-    /* index either some number, or "flexible" */
-    check_uniq("meta-disk", "%s:%s[%s]", host->name,
-	       host->meta_disk, host->meta_index);
-  } else if (host->meta_index) {
-    /* internal */
-    if (strcmp(host->meta_index,"flexible") != 0) {
-      /* internal, not flexible, but index given: no sir! */
-      fprintf(stderr,
-	      "%s:%d: no index allowed with 'meta-disk = internal'.\n",
-	      config_file, fline);
-    } /* else internal, flexible: fine */
-  } else {
-    /* internal, not flexible */
-    host->meta_index = strdup("internal");
-  }
+	if (strcmp(host->meta_disk, "internal") != 0) {
+		/* external */
+		if (host->meta_index == NULL) {
+			fprintf(stderr,
+				"%s:%d: expected 'meta-disk = %s [index]'.\n",
+				config_file, fline, host->meta_disk);
+		}
+		/* index either some number, or "flexible" */
+		check_uniq("meta-disk", "%s:%s[%s]", host->name,
+			   host->meta_disk, host->meta_index);
+	} else if (host->meta_index) {
+		/* internal */
+		if (strcmp(host->meta_index, "flexible") != 0) {
+			/* internal, not flexible, but index given: no sir! */
+			fprintf(stderr,
+				"%s:%d: no index allowed with 'meta-disk = internal'.\n",
+				config_file, fline);
+		}		/* else internal, flexible: fine */
+	} else {
+		/* internal, not flexible */
+		host->meta_index = strdup("internal");
+	}
 }
 
-///////////////////////////
-
-
 #define EXP(TOKEN1)						\
 ({ 								\
-	int token; 						\
-	token = yylex(); 					\
+	int token;						\
+	token = yylex();					\
 	if(token != TOKEN1)					\
 		pe_expected_got( #TOKEN1, token);		\
 	token;							\
@@ -213,17 +207,17 @@
 
 #define EXP2(TOKEN1,TOKEN2)						\
 ({ 									\
-	int token; 							\
-	token = yylex(); 						\
-	if(token != TOKEN1 && token != TOKEN2) 				\
+	int token;							\
+	token = yylex();						\
+	if(token != TOKEN1 && token != TOKEN2)				\
 		pe_expected_got( #TOKEN1 "|" # TOKEN2, token);		\
 	token;								\
 })
 
 static void pe_expected(const char *exp)
 {
-	fprintf(stderr,"%s:%u: Parse error: '%s' expected,\n\t"
-		"but got '%s'\n",config_file,line,exp,yytext);
+	fprintf(stderr, "%s:%u: Parse error: '%s' expected,\n\t"
+		"but got '%s'\n", config_file, line, exp, yytext);
 	exit(E_config_invalid);
 }
 
@@ -233,42 +227,51 @@
 	if (exp[0] == '\'' && exp[1] && exp[2] == '\'' && exp[3] == 0) {
 		tmp[0] = exp[1];
 	}
-	fprintf(stderr,"%s:%u: Parse error: '%s' expected,\n\t"
-		"but got '%s' (TK %d)\n",config_file,line,exp,yytext,got);
+	fprintf(stderr, "%s:%u: Parse error: '%s' expected,\n\t"
+		"but got '%s' (TK %d)\n", config_file, line, exp, yytext, got);
 	exit(E_config_invalid);
 }
 
-static void parse_global(void) {
+static void parse_global(void)
+{
 	fline = line;
-	check_uniq("global section","global");
+	check_uniq("global section", "global");
 	if (config) {
 		fprintf(stderr,
 			"%s:%u: You should put the global {} section\n\t"
 			"in front of any resource {} section\n",
-			config_file,line);
+			config_file, line);
 	}
 	EXP('{');
-	while(1) {
-		switch(yylex()) {
+	while (1) {
+		switch (yylex()) {
 		case TK_DISABLE_IP_VERIFICATION:
-			global_options.disable_ip_verification=1;
+			global_options.disable_ip_verification = 1;
 			break;
 		case TK_MINOR_COUNT:
 			EXP(TK_INTEGER);
-			range_check(R_MINOR_COUNT,"minor-count",yylval.txt);
-			global_options.minor_count=atoi(yylval.txt);
+			range_check(R_MINOR_COUNT, "minor-count", yylval.txt);
+			global_options.minor_count = atoi(yylval.txt);
 			break;
 		case TK_DIALOG_REFRESH:
 			EXP(TK_INTEGER);
-			range_check(R_DIALOG_REFRESH,"dialog-refresh",yylval.txt);
-			global_options.dialog_refresh=atoi(yylval.txt);
+			range_check(R_DIALOG_REFRESH, "dialog-refresh",
+				    yylval.txt);
+			global_options.dialog_refresh = atoi(yylval.txt);
 			break;
 		case TK_USAGE_COUNT:
-			switch(yylex()) {
-			case TK_YES: global_options.usage_count=UC_YES; break; 
-			case TK_NO:  global_options.usage_count=UC_NO;  break; 
-			case TK_ASK: global_options.usage_count=UC_ASK; break; 
-			default:     pe_expected("yes | no | ask");
+			switch (yylex()) {
+			case TK_YES:
+				global_options.usage_count = UC_YES;
+				break;
+			case TK_NO:
+				global_options.usage_count = UC_NO;
+				break;
+			case TK_ASK:
+				global_options.usage_count = UC_ASK;
+				break;
+			default:
+				pe_expected("yes | no | ask");
 			}
 			break;
 		case '}':
@@ -281,35 +284,35 @@
 	}
 }
 
-static struct d_option* parse_options(int token_switch,int token_option)
+static struct d_option *parse_options(int token_switch, int token_option)
 {
 	char *opt_name;
 	int token;
 	enum range_checks rc;
 
-	struct d_option* options = NULL, *ro = NULL;
+	struct d_option *options = NULL, *ro = NULL;
 	fline = line;
 
 	EXP('{');
-	while(1) {
+	while (1) {
 		token = yylex();
-		if( token == token_switch) {
-			options = APPEND(options,new_opt(yylval.txt,NULL));
-		} else if ( token == token_option) {
+		if (token == token_switch) {
+			options = APPEND(options, new_opt(yylval.txt, NULL));
+		} else if (token == token_option) {
 			opt_name = yylval.txt;
 			rc = yylval.rc;
-			EXP2(TK_STRING,TK_INTEGER);
-			range_check(rc,opt_name,yylval.txt);
-			ro = new_opt(opt_name,yylval.txt);
-			options = APPEND(options,ro);
-		} else if ( token == '}' ) {
+			EXP2(TK_STRING, TK_INTEGER);
+			range_check(rc, opt_name, yylval.txt);
+			ro = new_opt(opt_name, yylval.txt);
+			options = APPEND(options, ro);
+		} else if (token == '}') {
 			return options;
 		} else {
 			pe_expected("an option keyword");
 		}
-		switch(yylex()) {
+		switch (yylex()) {
 		case TK__IS_DEFAULT:
-			ro->is_default=1;
+			ro->is_default = 1;
 			EXP(';');
 			break;
 		case ';':
@@ -320,20 +323,20 @@
 	}
 }
 
-static void parse_host_body(struct d_host_info *host, 
-			    struct d_resource* res,
-			    int require_all) 
+static void parse_host_body(struct d_host_info *host,
+			    struct d_resource *res, int require_all)
 {
 	EXP('{');
-	while(1) {
-		switch(yylex()) {
+	while (1) {
+		switch (yylex()) {
 		case TK_DISK:
-			check_uniq("disk statement","%s:%s:disk",res->name,host->name);
+			check_uniq("disk statement", "%s:%s:disk", res->name,
+				   host->name);
 			EXP(TK_STRING);
 			host->disk = yylval.txt;
-			check_uniq("disk", "%s:%s:%s","disk",
-				   host->name,yylval.txt);
-			switch(yylex()) {
+			check_uniq("disk", "%s:%s:%s", "disk",
+				   host->name, yylval.txt);
+			switch (yylex()) {
 			case TK__MAJOR:
 				EXP(TK_INTEGER);
 				host->disk_major = atoi(yylval.txt);
@@ -348,34 +351,37 @@
 			}
 			break;
 		case TK_DEVICE:
-			check_uniq("device statement","%s:%s:device",res->name,host->name);
+			check_uniq("device statement", "%s:%s:device",
+				   res->name, host->name);
 			EXP(TK_STRING);
 			host->device = yylval.txt;
-			check_uniq("device", "%s:%s:%s","device",
-				   host->name,yylval.txt);
+			check_uniq("device", "%s:%s:%s", "device",
+				   host->name, yylval.txt);
 			EXP(';');
 			break;
 		case TK_ADDRESS:
-			check_uniq("address statement","%s:%s:address",res->name,host->name);
+			check_uniq("address statement", "%s:%s:address",
+				   res->name, host->name);
 			EXP(TK_IPADDR);
 			host->address = yylval.txt;
 			EXP(':');
 			EXP(TK_INTEGER);
 			host->port = yylval.txt;
 			range_check(R_PORT, "port", yylval.txt);
-			check_uniq("IP","%s:%s", host->address,host->port);
+			check_uniq("IP", "%s:%s", host->address, host->port);
 			EXP(';');
 			break;
 		case TK_META_DISK:
-			check_uniq("meta-disk statement","%s:%s:meta-disk",res->name,host->name);
+			check_uniq("meta-disk statement", "%s:%s:meta-disk",
+				   res->name, host->name);
 			EXP(TK_STRING);
 			host->meta_disk = yylval.txt;
-			if(strcmp("internal",yylval.txt)) {
+			if (strcmp("internal", yylval.txt)) {
 				EXP('[');
 				EXP(TK_INTEGER);
 				host->meta_index = yylval.txt;
 				EXP(']');
-				switch(yylex()) {
+				switch (yylex()) {
 				case TK__MAJOR:
 					EXP(TK_INTEGER);
 					host->meta_major = atoi(yylval.txt);
@@ -394,7 +400,8 @@
 			check_meta_disk(host);
 			break;
 		case TK_FLEX_META_DISK:
-			check_uniq("meta-disk statement","%s:%s:meta-disk",res->name,host->name);
+			check_uniq("meta-disk statement", "%s:%s:meta-disk",
+				   res->name, host->name);
 			EXP(TK_STRING);
 			host->meta_disk = yylval.txt;
 			host->meta_index = strdup("flexible");
@@ -408,12 +415,17 @@
 				    "| flex-meta-disk");
 		}
 	}
- break_loop:
-	if (!require_all) return;
-	if (!host->device)	derror(host,res,"device");
-	if (!host->disk)	derror(host,res,"disk");
-	if (!host->address)	derror(host,res,"address");
-	if (!host->meta_disk)	derror(host,res,"meta-disk");
+      break_loop:
+	if (!require_all)
+		return;
+	if (!host->device)
+		derror(host, res, "device");
+	if (!host->disk)
+		derror(host, res, "disk");
+	if (!host->address)
+		derror(host, res, "address");
+	if (!host->meta_disk)
+		derror(host, res, "meta-disk");
 }
 
 void parse_skip()
@@ -422,32 +434,34 @@
 	fline = line;
 
 	switch (yylex()) {
-		case TK_STRING:
-			EXP('{');
-			break;
-		case '{':
-			break;
-		default:
-			pe_expected("[ some_text ] {");
+	case TK_STRING:
+		EXP('{');
+		break;
+	case '{':
+		break;
+	default:
+		pe_expected("[ some_text ] {");
 	}
 
 	level = 1;
-	while(level) {
-		switch(yylex()) {
+	while (level) {
+		switch (yylex()) {
 		case '{':
-			level++; /* if you really want to,
-				    you can wrap this with a GB size config file :) */
+			/* if you really want to,
+			   you can wrap this with a GB size config file :) */
+			level++;
 			break;
 		case '}':
 			level--;
 			break;
 		case 0:
-			fprintf(stderr,"%s:%u: reached eof "
+			fprintf(stderr, "%s:%u: reached eof "
 				"while parsing this skip block.\n",
 				config_file, fline);
 			exit(E_config_invalid);
 		}
-	} while(level);
+	}
+	while (level) ;
 }
 
 
@@ -560,27 +574,30 @@
 	}
 }
 
-void yyparse(void)
+void my_parse(void)
 {
 	common = NULL;
 	config = NULL;
 
-	while(1) {
-		switch(yylex()) {
+	while (1) {
+		switch (yylex()) {
 		case TK_GLOBAL:
 			parse_global();
 			break;
-		case TK_COMMON: 
+		case TK_COMMON:
 			EXP('{');
-			common = parse_resource("common"); 
+			common = parse_resource("common");
 			break;
-		case TK_RESOURCE: 
+		case TK_RESOURCE:
 			EXP(TK_STRING);
 			EXP('{');
-			config = APPEND( config , parse_resource(yylval.txt) );
+			config = APPEND(config, parse_resource(yylval.txt));
 			break;
-		case TK_SKIP: parse_skip(); break;
-		case 0: return;
+		case TK_SKIP:
+			parse_skip();
+			break;
+		case 0:
+			return;
 		default:
 			pe_expected("global | common | resource | skip");
 		}



More information about the drbd-cvs mailing list