GET_IRQACTIDS, allow SELF in do_vm_map.
This commit is contained in:
		
							parent
							
								
									f18faca855
								
							
						
					
					
						commit
						d9d970bdfa
					
				@ -133,6 +133,12 @@ register message *m_ptr;	/* pointer to request message */
 | 
				
			|||||||
    	src_phys = vir2phys(&bios_buf_vir);
 | 
					    	src_phys = vir2phys(&bios_buf_vir);
 | 
				
			||||||
    	break;
 | 
					    	break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case GET_IRQACTIDS: {
 | 
				
			||||||
 | 
					        length = sizeof(irq_actids);
 | 
				
			||||||
 | 
					        src_phys = vir2phys(irq_actids);
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
        return(EINVAL);
 | 
					        return(EINVAL);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ FORWARD _PROTOTYPE( void map_range, (u32_t base, u32_t size,
 | 
				
			|||||||
							u32_t offset)	);
 | 
												u32_t offset)	);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*===========================================================================*
 | 
					/*===========================================================================*
 | 
				
			||||||
 *				do_vm_setbuf				     *
 | 
					 *				do_vm_map				     *
 | 
				
			||||||
 *===========================================================================*/
 | 
					 *===========================================================================*/
 | 
				
			||||||
PUBLIC int do_vm_map(m_ptr)
 | 
					PUBLIC int do_vm_map(m_ptr)
 | 
				
			||||||
message *m_ptr;			/* pointer to request message */
 | 
					message *m_ptr;			/* pointer to request message */
 | 
				
			||||||
@ -43,6 +43,8 @@ message *m_ptr;			/* pointer to request message */
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	proc_nr= m_ptr->m4_l1;
 | 
						proc_nr= m_ptr->m4_l1;
 | 
				
			||||||
 | 
						if (proc_nr == SELF)
 | 
				
			||||||
 | 
							proc_nr= m_ptr->m_source;
 | 
				
			||||||
	do_map= m_ptr->m4_l2;
 | 
						do_map= m_ptr->m4_l2;
 | 
				
			||||||
	base= m_ptr->m4_l3;
 | 
						base= m_ptr->m4_l3;
 | 
				
			||||||
	size= m_ptr->m4_l4;
 | 
						size= m_ptr->m4_l4;
 | 
				
			||||||
@ -207,6 +209,9 @@ u32_t offset;
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		entry= offset | I386_VM_USER | I386_VM_WRITE |
 | 
							entry= offset | I386_VM_USER | I386_VM_WRITE |
 | 
				
			||||||
			I386_VM_PRESENT;
 | 
								I386_VM_PRESENT;
 | 
				
			||||||
 | 
					#if 0	/* Do we need this for memory mapped I/O? */
 | 
				
			||||||
 | 
							entry |= I386_VM_PCD | I386_VM_PWT;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		phys_put32(curr_pt_addr + pt_ent * I386_VM_PT_ENT_SIZE, entry);
 | 
							phys_put32(curr_pt_addr + pt_ent * I386_VM_PT_ENT_SIZE, entry);
 | 
				
			||||||
		offset += PAGE_SIZE;
 | 
							offset += PAGE_SIZE;
 | 
				
			||||||
		base += PAGE_SIZE;
 | 
							base += PAGE_SIZE;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user