⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _ipc.s

📁 minix3的源代码
💻 S
字号:
.sect .text; .sect .rom; .sect .data; .sect .bss.define __echo, __notify, __send, __nb_send, __receive, __nb_receive, __sendrec ! See src/kernel/ipc.h for C definitionsSEND = 1RECEIVE = 2SENDREC = 3 NOTIFY = 4ECHO = 8NB_SEND = 1 + 16 		! flags 0x10 to prevent blocking NB_RECEIVE = 2 + 16		! flags 0x10 to prevent blocking SYSVEC = 33			! trap to kernel SRC_DST = 8			! source/ destination process ECHO_MESS = 8			! doesn't have SRC_DST MESSAGE = 12			! message pointer !*========================================================================*!                           IPC assembly routines			  *!*========================================================================*! all message passing routines save ebp, but destroy eax and ecx..define __echo, __notify, __send, __nb_send, __receive, __nb_receive, __sendrec .sect .text__send:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, SEND		! _send(dest, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__nb_send:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, NB_SEND		! _nb_send(dest, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__receive:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, RECEIVE		! _receive(src, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__nb_receive:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, NB_RECEIVE		! _nb_receive(src, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__sendrec:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, SENDREC		! _sendrec(srcdest, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__notify:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! ebx = destination 	mov	ecx, NOTIFY		! _notify(srcdst)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__echo:	push	ebp	mov	ebp, esp	push	ebx	mov	ebx, ECHO_MESS(ebp)	! ebx = message pointer	mov	ecx, ECHO		! _echo(srcdest, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -