| 	
	
	
		
		|||||||
  | 
		
| 
 | 
![]()  | 
	
	
| 
		 | 
	Strumenti | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Jan 2005 
				Città: Roma 
				
				
					Messaggi: 481
				 
				
				
				
				 | 
	
	
	
	
		
			
			 
				
				[Kernel 2.4.27]Implementare open() con semantica a sessione
			 
			
		Salve,  
		
	
		
		
		
		
		
	
	sto modificando la system call open() per implementare una semantica a sessione. Ho scritto tutto il codice che serve(e' ancora grezzo ma va), ma mi sto scontrando con un problema grosso: poichè ho bisogno di usare servizi esattamente uguali a quelli forniti da sys_read() e da sys_write, ma utilizzo dei buffer allocati in memoria kernel, ho la necessità di trovare dei servizi alternativi, visto che altrimenti sia sys_read che sys_write ritornano ERRNO = 14, ossia BAD ADDRESS visto che loro operano su buffer allocati in memoria user. Il problema è risolto per quanto riguarda la sys_read(), sostituita egregiamente con una kernel_read(), mentre il problema si pone sulla sys_write visto che nel kernel 2.4.27 pare non esistere una kernel_write (neanche su cross referencing linux ce n'è traccia). Qualcuno sa indicarmi una funzione interna al kernel di scrittura su file capace di accettare come parametro un buffer allocato in memoria kernel? Ho provato anche la write delle file operation, ma anche quella mi risponde con ERRNO = 14. Sono disperato  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Jan 2005 
				Città: Roma 
				
				
					Messaggi: 481
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Nessuno mi sa indicare una funziona interna che mi permetta di scrivere su file accettando come parametro un buffer allocato in kernel space? :/ 
		
	
		
		
		
		
		
	
	 
		 | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Vorrei che descrivessi meglio il tuo problema, visto che ho il sentore che possa essere gestito in user space. 
		
	
		
		
		
		
			Riguardo la scrittura dei file dentro al kernel: non farlo, punto. Usa un demone userspace di ausilio per effettuare la scrittura. Se proprio vuoi farti del male, dai una occhiata a come khttpd accede ai file da kernel space. 
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
		
		  
	   | 
| Strumenti | |
		
  | 
	
		
  | 
Tutti gli orari sono GMT +1. Ora sono le: 09:20.









		
		
		

		
 
 







