Sys calls are called ipc calls now
- the syscalls are pretty much just ipc calls, however, sendrec() is used to implement system task (sys) calls - sendrec() won't be used anymore for this, therefore ipc calls will become pure ipc calls
This commit is contained in:
		
							parent
							
								
									8a03d497b8
								
							
						
					
					
						commit
						b14a86ca5c
					
				@ -407,7 +407,7 @@ PRIVATE struct gate_table_s gate_table_ioapic[] = {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
PRIVATE struct gate_table_s gate_table_common[] = {
 | 
			
		||||
	{ syscall_entry, SYS386_VECTOR, USER_PRIVILEGE },
 | 
			
		||||
	{ ipc_entry, SYS386_VECTOR, USER_PRIVILEGE },
 | 
			
		||||
	{ level0_call, LEVEL0_VECTOR, TASK_PRIVILEGE },
 | 
			
		||||
	{ NULL, 0, 0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -380,8 +380,8 @@ hwint15:
 | 
			
		||||
 * syscall is only from a process to kernel
 | 
			
		||||
 */
 | 
			
		||||
.balign 16
 | 
			
		||||
.globl syscall_entry
 | 
			
		||||
syscall_entry:
 | 
			
		||||
.globl ipc_entry
 | 
			
		||||
ipc_entry:
 | 
			
		||||
 | 
			
		||||
	SAVE_PROCESS_CTX(0)
 | 
			
		||||
 | 
			
		||||
@ -401,7 +401,7 @@ syscall_entry:
 | 
			
		||||
	/* for stack trace */
 | 
			
		||||
	movl	$0, %ebp
 | 
			
		||||
 | 
			
		||||
	call	sys_call
 | 
			
		||||
	call	do_ipc
 | 
			
		||||
 | 
			
		||||
	/* restore the current process pointer and save the return value */
 | 
			
		||||
	add	$4 * 4, %esp
 | 
			
		||||
 | 
			
		||||
@ -212,7 +212,7 @@ PUBLIC void idt_init(void)
 | 
			
		||||
		{ alignment_check, ALIGNMENT_CHECK_VECTOR, INTR_PRIVILEGE },
 | 
			
		||||
		{ machine_check, MACHINE_CHECK_VECTOR, INTR_PRIVILEGE },
 | 
			
		||||
		{ simd_exception, SIMD_EXCEPTION_VECTOR, INTR_PRIVILEGE },
 | 
			
		||||
		{ syscall_entry, SYS386_VECTOR, USER_PRIVILEGE },/* 386 system call */
 | 
			
		||||
		{ ipc_entry, SYS386_VECTOR, USER_PRIVILEGE },/* 386 system call */
 | 
			
		||||
		{ level0_call, LEVEL0_VECTOR, TASK_PRIVILEGE },
 | 
			
		||||
		{ NULL, 0, 0}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ void                              _PROTOTYPE( simd_exception, (void) );
 | 
			
		||||
 | 
			
		||||
/* Software interrupt handlers, in numerical order. */
 | 
			
		||||
_PROTOTYPE( void trp, (void) );
 | 
			
		||||
_PROTOTYPE( void syscall_entry, (void) );
 | 
			
		||||
_PROTOTYPE( void ipc_entry, (void) );
 | 
			
		||||
_PROTOTYPE( void level0_call, (void) );
 | 
			
		||||
 | 
			
		||||
/* memory.c */
 | 
			
		||||
 | 
			
		||||
@ -477,11 +477,11 @@ PUBLIC void arch_do_syscall(struct proc *proc)
 | 
			
		||||
  m_ptr = (message *) proc->p_reg.bx;
 | 
			
		||||
  bit_map = proc->p_reg.dx;
 | 
			
		||||
 | 
			
		||||
  /* sys_call() expects the given process's memory to be accessible. */
 | 
			
		||||
  /* do_ipc() expects the given process's memory to be accessible. */
 | 
			
		||||
  vm_set_cr3(proc);
 | 
			
		||||
 | 
			
		||||
  /* Make the system call, for real this time. */
 | 
			
		||||
  proc->p_reg.retreg = sys_call(call_nr, src_dst_e, m_ptr, bit_map);
 | 
			
		||||
  proc->p_reg.retreg = do_ipc(call_nr, src_dst_e, m_ptr, bit_map);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
PUBLIC struct proc * arch_finish_schedcheck(void)
 | 
			
		||||
 | 
			
		||||
@ -283,7 +283,7 @@ check_misc_flags:
 | 
			
		||||
/*===========================================================================*
 | 
			
		||||
 *				sys_call				     * 
 | 
			
		||||
 *===========================================================================*/
 | 
			
		||||
PUBLIC int sys_call(call_nr, src_dst_e, m_ptr, bit_map)
 | 
			
		||||
PUBLIC int do_ipc(call_nr, src_dst_e, m_ptr, bit_map)
 | 
			
		||||
int call_nr;			/* system call number and flags */
 | 
			
		||||
int src_dst_e;			/* src to receive from or dst to send to */
 | 
			
		||||
message *m_ptr;			/* pointer to message in the caller's space */
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ _PROTOTYPE( int kprintf, (const char *fmt, ...)				);
 | 
			
		||||
_PROTOTYPE( void minix_panic, (char *s, int n)				);
 | 
			
		||||
 | 
			
		||||
/* proc.c */
 | 
			
		||||
_PROTOTYPE( int sys_call, (int call_nr, int src_dst, 
 | 
			
		||||
_PROTOTYPE( int do_ipc, (int call_nr, int src_dst, 
 | 
			
		||||
					message *m_ptr, long bit_map)	);
 | 
			
		||||
_PROTOTYPE( int lock_notify, (int src, int dst)				);
 | 
			
		||||
_PROTOTYPE( int mini_notify, (struct proc *src, endpoint_t dst)		);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user