You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							731 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							731 B
						
					
					
				| /* config.c */ | |
|  | |
| #include "types.h" | |
| #include "config.h" | |
| #include "crc.h" | |
| #include "log.h" | |
| #include "status.h" | |
| #include "panic.h" | |
|  | |
| struct config config; | |
|  | |
| bool config_valid = FALSE; | |
|  | |
| #define READ_UINT(b, i) ((b)[(i)] + ((b)[(i)+1] << 8) + \ | |
|                 ((b)[(i)+2] << 16) + ((b)[(i)+3] << 24)) | |
|  | |
| unsigned int foobar = sizeof(struct config); | |
|  | |
| void config_init(char *buffer) | |
| { | |
|     config_valid = FALSE; | |
|     if (READ_UINT(buffer, 0) == CONFIG_MAGIC) { | |
| 	if (READ_UINT(buffer, 4) == CONFIG_VERSION) { | |
| 	    if (check_crc(buffer, sizeof(struct config)+12)) { | |
| 		config = *(struct config *)(buffer+8); | |
| 		config_valid = TRUE; | |
| 	    } | |
| 	} | |
|     } | |
|     if (config_valid) { | |
| 	log_put_config(); | |
| 	status_set_ready(STATUS_MODULE_CONFIG, TRUE); | |
|     } | |
| } | |
| 
 | |
| 
 |