| 
					
				 | 
			
			
				@@ -209,17 +209,17 @@ static shellmatta_retCode_t ymodem(shellmatta_handle_t handle, const char *argum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (SHELLMATTA_OK == ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         shellmatta_printf(handle, "Starting ymodem session\r\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        shellmatta_ymodem(handle, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ymodemBuffer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        &ymodemFileSize, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        &ymodemPacketSize, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ymodemCallbacks); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ret = SHELLMATTA_CONTINUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    shellmatta_ymodem(handle, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ymodemBuffer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    &ymodemFileSize, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    &ymodemPacketSize, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ymodemCallbacks); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-shellmatta_cmd_t ymodemCommand = {"ymodem", NULL, NULL, NULL, ymodem, NULL}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+shellmatta_cmd_t ymodemCommand = {"ymodem", NULL, NULL, NULL, ymodem, NULL, NULL}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 shellmatta_retCode_t writeFct(const char* data, uint32_t length) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,18 +283,31 @@ int main(int argc, char **argv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     shellmatta_auth_init(handle, userList, 2, permList, 2, false, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     while(exitRequest == false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         char c; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         shellmatta_retCode_t ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int flags = fcntl(f, F_GETFL, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fcntl(f, F_SETFL, flags | O_NONBLOCK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int res = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res = read (f, &c, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res == -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            i = (i + 1) % 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            usleep(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (i != 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         fprintf(stdout, "0x%02x \n", c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         fflush(stdout); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res = res > 0 ? res : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ret = shellmatta_processData(handle, &c, res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(SHELLMATTA_BUSY == ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 |