targets/Linux/plc_Linux_main_retain.c
changeset 2634 4de945ddc223
parent 2499 68f4f2d4516b
equal deleted inserted replaced
2633:fecdb71e7514 2634:4de945ddc223
   103 }
   103 }
   104 
   104 
   105 /* Compare current hash with hash from file byte by byte.  */
   105 /* Compare current hash with hash from file byte by byte.  */
   106 int CheckFilehash(void)
   106 int CheckFilehash(void)
   107 {
   107 {
   108 	int k;
   108 	int k,ret;
   109 	int offset = sizeof(retain_info.retain_size);
   109 	int offset = sizeof(retain_info.retain_size);
   110 
   110 
   111 	rewind(retain_buffer);
   111 	rewind(retain_buffer);
   112 	fseek(retain_buffer, offset , SEEK_SET);
   112 	fseek(retain_buffer, offset , SEEK_SET);
   113 
   113 
   114 	uint32_t size;
   114 	uint32_t size;
   115 	fread(&size, sizeof(size), 1, retain_buffer);
   115 	ret = fread(&size, sizeof(size), 1, retain_buffer);
   116 	if (size != retain_info.hash_size)
   116 	if (size != retain_info.hash_size)
   117 		return 0;
   117 		return 0;
   118 
   118 
   119 	for(k = 0; k < retain_info.hash_size; k++){
   119 	for(k = 0; k < retain_info.hash_size; k++){
   120 		uint8_t file_digit;
   120 		uint8_t file_digit;
   121 		fread(&file_digit, sizeof(char), 1, retain_buffer);
   121 		ret = fread(&file_digit, sizeof(char), 1, retain_buffer);
   122 		if (file_digit != *(retain_info.hash+k))
   122 		if (file_digit != *(retain_info.hash+k))
   123 			return 0;
   123 			return 0;
   124 	}
   124 	}
   125 
   125 
   126 	return 1;
   126 	return 1;
   315 	fwrite(p, count, 1, retain_buffer);
   315 	fwrite(p, count, 1, retain_buffer);
   316 }
   316 }
   317 
   317 
   318 void Remind(unsigned int offset, unsigned int count, void *p)
   318 void Remind(unsigned int offset, unsigned int count, void *p)
   319 {
   319 {
       
   320     int ret;
   320 	/* Remind variable from file.  */
   321 	/* Remind variable from file.  */
   321 	fseek(retain_buffer, retain_info.header_offset+offset, SEEK_SET);
   322 	fseek(retain_buffer, retain_info.header_offset+offset, SEEK_SET);
   322 	fread((void *)p, count, 1, retain_buffer);
   323 	ret = fread((void *)p, count, 1, retain_buffer);
   323 }
   324 }
   324 #endif // !HAVE_RETAIN
   325 #endif // !HAVE_RETAIN