kernel: fix #0/brk/ qid (it's a special directory, not a special file)
This commit is contained in:
		| @@ -23,7 +23,7 @@ main(void) | ||||
| { | ||||
| 	long b, b1; | ||||
|  | ||||
| 	b = create("#0/brk", -1, 16*1024*1024); | ||||
| 	b = create("#0/brk/set", -1, 16*1024*1024); | ||||
| 	if(b >= 0){ | ||||
| 		print("FAIL: create returned fd %d.\n", b); | ||||
| 		exits("FAIL"); | ||||
|   | ||||
| @@ -63,7 +63,7 @@ Cmdtab proccmd[] = { | ||||
|  | ||||
| static Dirtab selfdir[]={ | ||||
| 	".",		{Qdir, 0, QTDIR},	0,		DMDIR|0777, | ||||
| 	"brk",		{Qbrk},			0,		0, | ||||
| 	"brk",		{Qbrk, 0, QTDIR},	0,		DMDIR|0300, | ||||
| 	"pid",		{Qpid},			0,		0400, | ||||
| 	"ppid",		{Qppid},		0,		0400, | ||||
| 	"pgrpid",	{Qpgrpid},		0,		0400, | ||||
| @@ -197,6 +197,8 @@ selfcreate(Chan* c, char* name, unsigned long omode, unsigned long perm) | ||||
| 	default: | ||||
| 		error(Eperm); | ||||
| 	case Qbrk: | ||||
| 		if(strcmp(name, "set") != 0) | ||||
| 			error(Eperm); | ||||
| 		e = (long)grow_bss(perm); | ||||
| 		errorl(nil, ~e); | ||||
| 	} | ||||
|   | ||||
| @@ -18,7 +18,7 @@ enum | ||||
| 	Round	= 7 | ||||
| }; | ||||
|  | ||||
| #define brk_(p) ((uintptr_t)~create("#0/brk", -1, p)) | ||||
| #define brk_(p) ((uintptr_t)~create("#0/brk/set", -1, p)) | ||||
|  | ||||
| int | ||||
| brk(void *p) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user