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

📄 sema.patch

📁 MINIX操作系统的内核修改补丁
💻 PATCH
📖 第 1 页 / 共 2 页
字号:
diff -c -Nr src.clean/include/lib.h src/include/lib.h*** src.clean/include/lib.h	2008-11-15 06:52:11.000000000 +0800--- src/include/lib.h	2008-11-15 07:34:30.000000000 +0800****************** 25,30 ****--- 25,31 ----    #define MM                 PM_PROC_NR  #define FS                 FS_PROC_NR+ #define SS		   SS_PROC_NR    _PROTOTYPE( int __execve, (const char *_path, char *const _argv[],   			char *const _envp[], int _nargs, int _nenvps)	);diff -c -Nr src.clean/include/minix/com.h src/include/minix/com.h*** src.clean/include/minix/com.h	2008-11-15 06:52:12.000000000 +0800--- src/include/minix/com.h	2008-11-16 00:35:06.000000000 +0800****************** 37,47 ****  #define PM_PROC_NR	  0	/* process manager */  #define FS_PROC_NR 	  1	/* file system */  #define RS_PROC_NR 	  2	/* reincarnation server */! #define MEM_PROC_NR 	  3  	/* memory driver (RAM disk, null, etc.) */! #define LOG_PROC_NR	  4	/* log device driver */! #define TTY_PROC_NR	  5	/* terminal (TTY) driver */! #define DS_PROC_NR	  6    	/* data store server */! #define INIT_PROC_NR	  7    	/* init -- goes multiuser */    /* Number of processes contained in the system image. */  #define NR_BOOT_PROCS 	(NR_TASKS + INIT_PROC_NR + 1)--- 37,48 ----  #define PM_PROC_NR	  0	/* process manager */  #define FS_PROC_NR 	  1	/* file system */  #define RS_PROC_NR 	  2	/* reincarnation server */! #define SS_PROC_NR 	  3	/* semaphore server */! #define MEM_PROC_NR 	  4  	/* memory driver (RAM disk, null, etc.) */! #define LOG_PROC_NR	  5	/* log device driver */! #define TTY_PROC_NR	  6	/* terminal (TTY) driver */! #define DS_PROC_NR	  7    	/* data store server */! #define INIT_PROC_NR	  8    	/* init -- goes multiuser */    /* Number of processes contained in the system image. */  #define NR_BOOT_PROCS 	(NR_TASKS + INIT_PROC_NR + 1)****************** 486,491 ****--- 487,506 ----  #  define DS_VAL_L2		m2_l2		/* second long data value */    /*===========================================================================*+  *                Message for the Semaphore Server+  * ==========================================================================*/+ + #define SS_RQ_BASE              0x2000+ + #define SS_SEMA_INIT    (SS_RQ_BASE + 0)+ #define SS_SEMA_DOWN    (SS_RQ_BASE + 1)+ #define SS_SEMA_UP      (SS_RQ_BASE + 2)+ #define SS_SEMA_RELEASE (SS_RQ_BASE + 3)+ + #define SS_SEMAPHORE_NUMBER  m1_i1+ #define SS_START_VALUE       m1_i2+ + /*===========================================================================*   *                Miscellaneous messages used by TTY			     *   *===========================================================================*/  diff -c -Nr src.clean/kernel/table.c src/kernel/table.c*** src.clean/kernel/table.c	2008-11-15 06:52:12.000000000 +0800--- src/kernel/table.c	2008-11-15 07:32:34.000000000 +0800****************** 68,74 ****  #define s(n)		(1 << s_nr_to_id(n))  #define SRV_M	(~0)  #define SYS_M	(~0)! #define USR_M (s(PM_PROC_NR) | s(FS_PROC_NR) | s(RS_PROC_NR) | s(SYSTEM))  #define DRV_M (USR_M | s(SYSTEM) | s(CLOCK) | s(DS_PROC_NR) | s(LOG_PROC_NR) | s(TTY_PROC_NR))    /* Define kernel calls that processes are allowed to make. This is not looking--- 68,74 ----  #define s(n)		(1 << s_nr_to_id(n))  #define SRV_M	(~0)  #define SYS_M	(~0)! #define USR_M (s(PM_PROC_NR) | s(FS_PROC_NR) | s(RS_PROC_NR) | s(SS_PROC_NR) | s(SYSTEM))  #define DRV_M (USR_M | s(SYSTEM) | s(CLOCK) | s(DS_PROC_NR) | s(LOG_PROC_NR) | s(TTY_PROC_NR))    /* Define kernel calls that processes are allowed to make. This is not looking****************** 78,83 ****--- 78,84 ----   */  #define c(n)	(1 << ((n)-KERNEL_CALL))  #define RS_C	~0	+ #define SS_C	~0  #define DS_C	~0	  #define PM_C	~(c(SYS_DEVIO) | c(SYS_SDEVIO) | c(SYS_VDEVIO) | c(SYS_IRQCTL) | c(SYS_INT86))  #define FS_C	(c(SYS_KILL) | c(SYS_VIRCOPY) | c(SYS_VIRVCOPY) | c(SYS_UMAP) | c(SYS_GETINFO) | c(SYS_EXIT) | c(SYS_TIMES) | c(SYS_SETALARM))****************** 105,110 ****--- 106,112 ----   { PM_PROC_NR,    0, SRV_F, 32,      3, 0,     SRV_T, SRV_M,  PM_C, "pm"    },   { FS_PROC_NR,    0, SRV_F, 32,      4, 0,     SRV_T, SRV_M,  FS_C, "fs"    },   { RS_PROC_NR,    0, SRV_F,  4,      3, 0,     SRV_T, SYS_M,  RS_C, "rs"    },+  { SS_PROC_NR,    0, SRV_F, 32,      4, 0,     SRV_T, SYS_M,  SS_C, "ss"    },   { DS_PROC_NR,    0, SRV_F,  4,      3, 0,     SRV_T, SYS_M,  DS_C, "ds"    },   { TTY_PROC_NR,   0, SRV_F,  4,      1, 0,     SRV_T, SYS_M, TTY_C, "tty"   },   { MEM_PROC_NR,   0, SRV_F,  4,      2, 0,     SRV_T, SYS_M, MEM_C, "mem"   },diff -c -Nr src.clean/lib/posix/Makedepend-ack src/lib/posix/Makedepend-ack*** src.clean/lib/posix/Makedepend-ack	2008-11-15 06:52:17.000000000 +0800--- src/lib/posix/Makedepend-ack	2008-11-15 07:48:56.000000000 +0800****************** 1,6 ****--- 1,7 ----  depend-ack:  	rm .depend-ack  	touch .depend-ack+ 	mkdep 'cc -O -D_MINIX -D_POSIX_SOURCE -E' _semaphore.c | sed -e 's:^\(.\):../obj-ack//./posix/\1:' >> .depend-ack  	mkdep 'cc -O -D_MINIX -D_POSIX_SOURCE -E' __exit.c | sed -e 's:^\(.\):../obj-ack//./posix/\1:' >> .depend-ack  	mkdep 'cc -O -D_MINIX -D_POSIX_SOURCE -E' _access.c | sed -e 's:^\(.\):../obj-ack//./posix/\1:' >> .depend-ack  	mkdep 'cc -O -D_MINIX -D_POSIX_SOURCE -E' _alarm.c | sed -e 's:^\(.\):../obj-ack//./posix/\1:' >> .depend-ackdiff -c -Nr src.clean/lib/posix/Makedepend-gnu src/lib/posix/Makedepend-gnu*** src.clean/lib/posix/Makedepend-gnu	2008-11-15 06:52:17.000000000 +0800--- src/lib/posix/Makedepend-gnu	2008-11-15 07:48:56.000000000 +0800****************** 1,6 ****--- 1,7 ----  depend-gnu:  	rm .depend-gnu  	touch .depend-gnu+ 	mkdep 'gcc -O -D_MINIX -D_POSIX_SOURCE -E' _semaphore.c | sed -e '/<built-in>/d' -e '/<command line>/d' -e 's:^\(.\):../obj-gnu/./posix/\1:' >> .depend-gnu  	mkdep 'gcc -O -D_MINIX -D_POSIX_SOURCE -E' __exit.c | sed -e '/<built-in>/d' -e '/<command line>/d' -e 's:^\(.\):../obj-gnu/./posix/\1:' >> .depend-gnu  	mkdep 'gcc -O -D_MINIX -D_POSIX_SOURCE -E' _access.c | sed -e '/<built-in>/d' -e '/<command line>/d' -e 's:^\(.\):../obj-gnu/./posix/\1:' >> .depend-gnu  	mkdep 'gcc -O -D_MINIX -D_POSIX_SOURCE -E' _alarm.c | sed -e '/<built-in>/d' -e '/<command line>/d' -e 's:^\(.\):../obj-gnu/./posix/\1:' >> .depend-gnudiff -c -Nr src.clean/lib/posix/Makefile src/lib/posix/Makefile*** src.clean/lib/posix/Makefile	2008-11-15 06:52:17.000000000 +0800--- src/lib/posix/Makefile	2008-11-15 07:48:56.000000000 +0800****************** 19,24 ****--- 19,25 ----  depend: depend-ack  all-ack: ../obj-ack//libc.a  + ../obj-ack//libc.a: ../obj-ack//libc.a(_semaphore.o)  ../obj-ack//libc.a: ../obj-ack//libc.a(__exit.o)  ../obj-ack//libc.a: ../obj-ack//libc.a(_access.o)  ../obj-ack//libc.a: ../obj-ack//libc.a(_alarm.o)****************** 121,126 ****--- 122,129 ----  	ar cr ../obj-ack//libc.a ../obj-ack//./posix/*.o  	rm ../obj-ack//./posix/*.o  + ../obj-ack//libc.a(_semaphore.o): _semaphore.c+ 	cc -O -D_MINIX -D_POSIX_SOURCE -c -o ../obj-ack//./posix/_semaphore.o _semaphore.c  ../obj-ack//libc.a(__exit.o): __exit.c  	cc -O -D_MINIX -D_POSIX_SOURCE -c -o ../obj-ack//./posix/__exit.o __exit.c  ../obj-ack//libc.a(_access.o): _access.c****************** 318,323 ****--- 321,327 ----    all-gnu: ../obj-gnu/libc.a  + ../obj-gnu/libc.a: ../obj-gnu/./posix/_semaphore.o  ../obj-gnu/libc.a: ../obj-gnu/./posix/__exit.o  ../obj-gnu/libc.a: ../obj-gnu/./posix/_access.o  ../obj-gnu/libc.a: ../obj-gnu/./posix/_alarm.o****************** 419,424 ****--- 423,431 ----  ../obj-gnu/libc.a:  	gar cr ../obj-gnu/libc.a $?  + ../obj-gnu/./posix/_semaphore.o: _semaphore.c+ 	gcc -O -D_MINIX -D_POSIX_SOURCE -c -o ../obj-gnu/./posix/_semaphore.o _semaphore.c+   ../obj-gnu/./posix/__exit.o: __exit.c  	gcc -O -D_MINIX -D_POSIX_SOURCE -c -o ../obj-gnu/./posix/__exit.o __exit.c  diff -c -Nr src.clean/lib/posix/Makefile.in src/lib/posix/Makefile.in*** src.clean/lib/posix/Makefile.in	2008-11-15 06:52:17.000000000 +0800--- src/lib/posix/Makefile.in	2008-11-15 07:48:47.000000000 +0800****************** 5,10 ****--- 5,11 ----  LIBRARIES=libc    libc_FILES=" \+ 	_semaphore.c \  	__exit.c \  	_access.c \  	_alarm.c \diff -c -Nr src.clean/lib/posix/_semaphore.c src/lib/posix/_semaphore.c*** src.clean/lib/posix/_semaphore.c	1970-01-01 08:00:00.000000000 +0800--- src/lib/posix/_semaphore.c	2008-11-16 01:57:42.000000000 +0800****************** 0 ****--- 1,32 ----+ #include <lib.h>+ #include <unistd.h>+ + PUBLIC int sema_init(int semaphore_number, int start_value)+ {+ 	message m;+ 	m.m1_i1=semaphore_number;+ 	m.m1_i2=start_value;+ 	return(_syscall(SS,SS_SEMA_INIT,&m));+ }+ + PUBLIC int sema_down(int semaphore_number)+ {+ 	message m;+ 	m.m1_i1=semaphore_number;+ 	return(_syscall(SS,SS_SEMA_DOWN,&m));+ }+ + PUBLIC int sema_up(int semaphore_number)+ {+ 	message m;+ 	m.m1_i1=semaphore_number;+ 	return(_syscall(SS,SS_SEMA_UP,&m));+ }+ + PUBLIC int sema_release(int semaphore_number)+ {+ 	message m;+ 	m.m1_i1=semaphore_number;+ 	return(_syscall(SS,SS_SEMA_RELEASE,&m));+ }+ diff -c -Nr src.clean/servers/Makefile src/servers/Makefile*** src.clean/servers/Makefile	2008-11-15 06:52:22.000000000 +0800--- src/servers/Makefile	2008-11-15 07:26:04.000000000 +0800****************** 18,23 ****--- 18,24 ----  	cd ./pm && $(MAKE) $@  	cd ./fs && $(MAKE) $@  	cd ./rs && $(MAKE) $@+ 	cd ./ss && $(MAKE) $@  	cd ./ds && $(MAKE) $@  	cd ./is && $(MAKE) $@  	cd ./init && $(MAKE) $@****************** 27,32 ****--- 28,34 ----  	cd ./pm && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build  	cd ./fs && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build  	cd ./rs && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build+ 	cd ./ss && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build  	cd ./ds && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build  	cd ./init && $(MAKE) EXTRA_OPTS=$(EXTRA_OPTS) build  diff -c -Nr src.clean/servers/ss/.depend src/servers/ss/.depend*** src.clean/servers/ss/.depend	1970-01-01 08:00:00.000000000 +0800--- src/servers/ss/.depend	2008-11-15 07:07:38.000000000 +0800****************** 0 ****--- 1,56 ----+ + main.o:	/usr/include/ansi.h+ main.o:	/usr/include/errno.h+ main.o:	/usr/include/limits.h+ main.o:	/usr/include/minix/bitmap.h+ main.o:	/usr/include/minix/callnr.h+ main.o:	/usr/include/minix/com.h+ main.o:	/usr/include/minix/config.h+ main.o:	/usr/include/minix/const.h+ main.o:	/usr/include/minix/devio.h+ main.o:	/usr/include/minix/ipc.h+ main.o:	/usr/include/minix/keymap.h+ main.o:	/usr/include/minix/sys_config.h+ main.o:	/usr/include/minix/syslib.h+ main.o:	/usr/include/minix/sysutil.h+ main.o:	/usr/include/minix/type.h+ main.o:	/usr/include/signal.h+ main.o:	/usr/include/stdio.h+ main.o:	/usr/include/stdlib.h+ main.o:	/usr/include/string.h+ main.o:	/usr/include/sys/dir.h+ main.o:	/usr/include/sys/types.h+ main.o:	/usr/include/unistd.h+ main.o:	glo.h+ main.o:	inc.h+ main.o:	main.c+ main.o:	proto.h+ main.o:	semaphore.h+ + semaphore.o:	/usr/include/ansi.h+ semaphore.o:	/usr/include/errno.h+ semaphore.o:	/usr/include/limits.h+ semaphore.o:	/usr/include/minix/bitmap.h+ semaphore.o:	/usr/include/minix/callnr.h+ semaphore.o:	/usr/include/minix/com.h+ semaphore.o:	/usr/include/minix/config.h+ semaphore.o:	/usr/include/minix/const.h+ semaphore.o:	/usr/include/minix/devio.h+ semaphore.o:	/usr/include/minix/ipc.h+ semaphore.o:	/usr/include/minix/keymap.h+ semaphore.o:	/usr/include/minix/sys_config.h+ semaphore.o:	/usr/include/minix/syslib.h+ semaphore.o:	/usr/include/minix/sysutil.h+ semaphore.o:	/usr/include/minix/type.h+ semaphore.o:	/usr/include/signal.h+ semaphore.o:	/usr/include/stdio.h+ semaphore.o:	/usr/include/stdlib.h+ semaphore.o:	/usr/include/string.h+ semaphore.o:	/usr/include/sys/dir.h+ semaphore.o:	/usr/include/sys/types.h+ semaphore.o:	/usr/include/unistd.h+ semaphore.o:	glo.h+ semaphore.o:	inc.h+ semaphore.o:	proto.h+ semaphore.o:	semaphore.c+ semaphore.o:	semaphore.hdiff -c -Nr src.clean/servers/ss/glo.h src/servers/ss/glo.h*** src.clean/servers/ss/glo.h	1970-01-01 08:00:00.000000000 +0800--- src/servers/ss/glo.h	2008-11-16 02:24:03.000000000 +0800****************** 0 ****--- 1,7 ----+ /* Global variables. */+ + /* The parameters of the call are kept here. */+ extern int who; 		/* caller's proc number */+ extern int callnr;		/* system call number */+ extern int dont_reply;		/* normally 0; set to 1 to inhibit reply */+ diff -c -Nr src.clean/servers/ss/inc.h src/servers/ss/inc.h*** src.clean/servers/ss/inc.h	1970-01-01 08:00:00.000000000 +0800--- src/servers/ss/inc.h	2008-11-15 07:09:51.000000000 +0800****************** 0 ****--- 1,30 ----+ /* Header file including all needed system headers. */+ + #define _SYSTEM            1    /* get OK and negative error codes */+ #define _MINIX             1	/* tell headers to include MINIX stuff */+ + #include <ansi.h>+ #include <sys/types.h>+ #include <limits.h>+ #include <errno.h>+ + #include <minix/callnr.h>+ #include <minix/config.h>+ #include <minix/type.h>+ #include <minix/const.h>+ #include <minix/com.h>+ #include <minix/syslib.h>+ #include <minix/sysutil.h>+ #include <minix/keymap.h>+ #include <minix/bitmap.h>+ + #include <stdlib.h>+ #include <stdio.h>+ #include <string.h>+ #include <unistd.h>+ #include <signal.h>+ 

⌨️ 快捷键说明

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