_ipc.s

来自「Minix比较全的源码」· S 代码 · 共 93 行

S
93
字号
.sect .text; .sect .rom; .sect .data; .sect .bss.define __notify, __send, __senda, __sendnb, __receive, __sendrec ! See src/kernel/ipc.h for C definitionsSEND = 1RECEIVE = 2SENDREC = 3 NOTIFY = 4SENDNB = 5SENDA = 16SYSVEC = 33			! trap to kernel SRC_DST = 8			! source/ destination process MSGTAB = 8			! message tableMESSAGE = 12			! message pointer TABCOUNT = 12			! number of entries in message table!*========================================================================*!                           IPC assembly routines			  *!*========================================================================*! all message passing routines save ebp, but destroy eax and ecx..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__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__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__sendnb:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, SRC_DST(ebp)	! eax = dest-src	mov	ebx, MESSAGE(ebp)	! ebx = message pointer	mov	ecx, SENDNB		! _sendnb(dest, ptr)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret__senda:	push	ebp	mov	ebp, esp	push	ebx	mov	eax, TABCOUNT(ebp)	! eax = count	mov	ebx, MSGTAB(ebp)	! ebx = table	mov	ecx, SENDA		! _senda(table, count)	int	SYSVEC			! trap to the kernel	pop	ebx	pop	ebp	ret

⌨️ 快捷键说明

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