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