updated to minix 1.3
This commit is contained in:
parent
787904f82c
commit
bc565a13f1
10 changed files with 82 additions and 50 deletions
|
@ -21,11 +21,11 @@ PUBLIC char *sbrk(incr)
|
||||||
int incr;
|
int incr;
|
||||||
{
|
{
|
||||||
char *newsize, *oldsize;
|
char *newsize, *oldsize;
|
||||||
extern int endv, dorgv;
|
|
||||||
|
|
||||||
oldsize = brksize;
|
oldsize = brksize;
|
||||||
newsize = brksize + incr;
|
newsize = brksize + incr;
|
||||||
if (incr > 0 && newsize < oldsize) return( (char *) -1);
|
if (incr > 0 && newsize < oldsize || incr < 0 && newsize > oldsize)
|
||||||
|
return( (char *) -1);
|
||||||
if (brk(newsize) == 0)
|
if (brk(newsize) == 0)
|
||||||
return(oldsize);
|
return(oldsize);
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
|
|
||||||
char *nullptr[1]; /* the EXEC calls need a zero pointer */
|
extern char **environ; /* environment pointer */
|
||||||
|
|
||||||
#define PTRSIZE sizeof(char *)
|
#define PTRSIZE sizeof(char *)
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ PUBLIC int execl(name, arg0)
|
||||||
char *name;
|
char *name;
|
||||||
char *arg0;
|
char *arg0;
|
||||||
{
|
{
|
||||||
return execve(name, &arg0, nullptr);
|
return execve(name, &arg0, environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
PUBLIC int execle(name, argv)
|
PUBLIC int execle(name, argv)
|
||||||
|
@ -23,7 +23,7 @@ char *name, *argv;
|
||||||
PUBLIC int execv(name, argv)
|
PUBLIC int execv(name, argv)
|
||||||
char *name, *argv[];
|
char *name, *argv[];
|
||||||
{
|
{
|
||||||
return execve(name, argv, nullptr);
|
return execve(name, argv, environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,28 +11,29 @@ union {
|
||||||
} u;
|
} u;
|
||||||
|
|
||||||
{
|
{
|
||||||
int n;
|
int n, ispeed, ospeed;
|
||||||
long erase, kill, intr, quit, xon, xoff, eof, brk;
|
long erase, kill, intr, quit, xon, xoff, eof, brk, speed;
|
||||||
|
|
||||||
M.TTY_REQUEST = request;
|
M.TTY_REQUEST = request;
|
||||||
M.TTY_LINE = fd;
|
M.TTY_LINE = fd;
|
||||||
|
|
||||||
switch(request) {
|
switch(request) {
|
||||||
case TIOCSETP:
|
case TIOCSETP:
|
||||||
erase = u.argp->sg_erase & 0377;
|
erase = u.argp->sg_erase & BYTE;
|
||||||
kill = u.argp->sg_kill & 0377;
|
kill = u.argp->sg_kill & BYTE;
|
||||||
M.TTY_SPEK = (erase << 8) | kill;
|
M.TTY_SPEK = (erase << 8) | kill;
|
||||||
M.TTY_FLAGS = u.argp->sg_flags;
|
M.TTY_FLAGS = u.argp->sg_flags;
|
||||||
|
M.TTY_SPEED = (u.argp->sg_ospeed << 8) | u.argp->sg_ispeed;
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
case TIOCSETC:
|
case TIOCSETC:
|
||||||
intr = u.argt->t_intrc & 0377;
|
intr = u.argt->t_intrc & BYTE;
|
||||||
quit = u.argt->t_quitc & 0377;
|
quit = u.argt->t_quitc & BYTE;
|
||||||
xon = u.argt->t_startc & 0377;
|
xon = u.argt->t_startc & BYTE;
|
||||||
xoff = u.argt->t_stopc & 0377;
|
xoff = u.argt->t_stopc & BYTE;
|
||||||
eof = u.argt->t_eofc & 0377;
|
eof = u.argt->t_eofc & BYTE;
|
||||||
brk = u.argt->t_brkc & 0377; /* not used at the moment */
|
brk = u.argt->t_brkc & BYTE; /* not used at the moment */
|
||||||
M.TTY_SPEK = (intr<<24) | (quit<<16) | (xon<<8) | (xoff<<0);
|
M.TTY_SPEK = (intr<<24) | (quit<<16) | (xon<<8) | (xoff<<0);
|
||||||
M.TTY_FLAGS = (eof<<8) | (brk<<0);
|
M.TTY_FLAGS = (eof<<8) | (brk<<0);
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
|
@ -40,19 +41,22 @@ union {
|
||||||
|
|
||||||
case TIOCGETP:
|
case TIOCGETP:
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
u.argp->sg_erase = (M.TTY_SPEK >> 8) & 0377;
|
u.argp->sg_erase = (M.TTY_SPEK >> 8) & BYTE;
|
||||||
u.argp->sg_kill = (M.TTY_SPEK >> 0) & 0377;
|
u.argp->sg_kill = (M.TTY_SPEK >> 0) & BYTE;
|
||||||
u.argp->sg_flags = M.TTY_FLAGS;
|
u.argp->sg_flags = M.TTY_FLAGS & 0xFFFF;
|
||||||
|
speed = (M.TTY_FLAGS >> 16) & 0xFFFFL;
|
||||||
|
u.argp->sg_ispeed = speed & BYTE;
|
||||||
|
u.argp->sg_ospeed = (speed >> 8) & BYTE;
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
case TIOCGETC:
|
case TIOCGETC:
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
u.argt->t_intrc = (M.TTY_SPEK >> 24) & 0377;
|
u.argt->t_intrc = (M.TTY_SPEK >> 24) & BYTE;
|
||||||
u.argt->t_quitc = (M.TTY_SPEK >> 16) & 0377;
|
u.argt->t_quitc = (M.TTY_SPEK >> 16) & BYTE;
|
||||||
u.argt->t_startc = (M.TTY_SPEK >> 8) & 0377;
|
u.argt->t_startc = (M.TTY_SPEK >> 8) & BYTE;
|
||||||
u.argt->t_stopc = (M.TTY_SPEK >> 0) & 0377;
|
u.argt->t_stopc = (M.TTY_SPEK >> 0) & BYTE;
|
||||||
u.argt->t_eofc = (M.TTY_FLAGS >> 8) & 0377;
|
u.argt->t_eofc = (M.TTY_FLAGS >> 8) & BYTE;
|
||||||
u.argt->t_brkc = (M.TTY_FLAGS >> 8) & 0377;
|
u.argt->t_brkc = (M.TTY_FLAGS >> 8) & BYTE;
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -150,6 +150,18 @@ phys_clicks *basep, *sizep; /* base and size for free_mem() */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
PUBLIC sys_kill(proc, sig)
|
||||||
|
int proc; /* which proc has exited */
|
||||||
|
int sig; /* signal number: 1 - 16 */
|
||||||
|
{
|
||||||
|
/* A proc has to be signaled via MM. Tell the kernel. */
|
||||||
|
|
||||||
|
M.m6_i1 = proc;
|
||||||
|
M.m6_i2 = sig;
|
||||||
|
callx(SYSTASK, SYS_KILL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PUBLIC int tell_fs(what, p1, p2, p3)
|
PUBLIC int tell_fs(what, p1, p2, p3)
|
||||||
int what, p1, p2, p3;
|
int what, p1, p2, p3;
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,6 @@ int *status;
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
k = callm1(MM, WAIT, 0, 0, 0, NIL_PTR, NIL_PTR, NIL_PTR);
|
k = callm1(MM, WAIT, 0, 0, 0, NIL_PTR, NIL_PTR, NIL_PTR);
|
||||||
if (status != 0) *status = M.m2_i1;
|
if (k >= 0 && status != 0) *status = M.m2_i1;
|
||||||
return(k);
|
return(k);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,11 +21,11 @@ PUBLIC char *sbrk(incr)
|
||||||
int incr;
|
int incr;
|
||||||
{
|
{
|
||||||
char *newsize, *oldsize;
|
char *newsize, *oldsize;
|
||||||
extern int endv, dorgv;
|
|
||||||
|
|
||||||
oldsize = brksize;
|
oldsize = brksize;
|
||||||
newsize = brksize + incr;
|
newsize = brksize + incr;
|
||||||
if (incr > 0 && newsize < oldsize) return( (char *) -1);
|
if (incr > 0 && newsize < oldsize || incr < 0 && newsize > oldsize)
|
||||||
|
return( (char *) -1);
|
||||||
if (brk(newsize) == 0)
|
if (brk(newsize) == 0)
|
||||||
return(oldsize);
|
return(oldsize);
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
|
|
||||||
char *nullptr[1]; /* the EXEC calls need a zero pointer */
|
extern char **environ; /* environment pointer */
|
||||||
|
|
||||||
#define PTRSIZE sizeof(char *)
|
#define PTRSIZE sizeof(char *)
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ PUBLIC int execl(name, arg0)
|
||||||
char *name;
|
char *name;
|
||||||
char *arg0;
|
char *arg0;
|
||||||
{
|
{
|
||||||
return execve(name, &arg0, nullptr);
|
return execve(name, &arg0, environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
PUBLIC int execle(name, argv)
|
PUBLIC int execle(name, argv)
|
||||||
|
@ -23,7 +23,7 @@ char *name, *argv;
|
||||||
PUBLIC int execv(name, argv)
|
PUBLIC int execv(name, argv)
|
||||||
char *name, *argv[];
|
char *name, *argv[];
|
||||||
{
|
{
|
||||||
return execve(name, argv, nullptr);
|
return execve(name, argv, environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,28 +11,29 @@ union {
|
||||||
} u;
|
} u;
|
||||||
|
|
||||||
{
|
{
|
||||||
int n;
|
int n, ispeed, ospeed;
|
||||||
long erase, kill, intr, quit, xon, xoff, eof, brk;
|
long erase, kill, intr, quit, xon, xoff, eof, brk, speed;
|
||||||
|
|
||||||
M.TTY_REQUEST = request;
|
M.TTY_REQUEST = request;
|
||||||
M.TTY_LINE = fd;
|
M.TTY_LINE = fd;
|
||||||
|
|
||||||
switch(request) {
|
switch(request) {
|
||||||
case TIOCSETP:
|
case TIOCSETP:
|
||||||
erase = u.argp->sg_erase & 0377;
|
erase = u.argp->sg_erase & BYTE;
|
||||||
kill = u.argp->sg_kill & 0377;
|
kill = u.argp->sg_kill & BYTE;
|
||||||
M.TTY_SPEK = (erase << 8) | kill;
|
M.TTY_SPEK = (erase << 8) | kill;
|
||||||
M.TTY_FLAGS = u.argp->sg_flags;
|
M.TTY_FLAGS = u.argp->sg_flags;
|
||||||
|
M.TTY_SPEED = (u.argp->sg_ospeed << 8) | u.argp->sg_ispeed;
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
case TIOCSETC:
|
case TIOCSETC:
|
||||||
intr = u.argt->t_intrc & 0377;
|
intr = u.argt->t_intrc & BYTE;
|
||||||
quit = u.argt->t_quitc & 0377;
|
quit = u.argt->t_quitc & BYTE;
|
||||||
xon = u.argt->t_startc & 0377;
|
xon = u.argt->t_startc & BYTE;
|
||||||
xoff = u.argt->t_stopc & 0377;
|
xoff = u.argt->t_stopc & BYTE;
|
||||||
eof = u.argt->t_eofc & 0377;
|
eof = u.argt->t_eofc & BYTE;
|
||||||
brk = u.argt->t_brkc & 0377; /* not used at the moment */
|
brk = u.argt->t_brkc & BYTE; /* not used at the moment */
|
||||||
M.TTY_SPEK = (intr<<24) | (quit<<16) | (xon<<8) | (xoff<<0);
|
M.TTY_SPEK = (intr<<24) | (quit<<16) | (xon<<8) | (xoff<<0);
|
||||||
M.TTY_FLAGS = (eof<<8) | (brk<<0);
|
M.TTY_FLAGS = (eof<<8) | (brk<<0);
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
|
@ -40,19 +41,22 @@ union {
|
||||||
|
|
||||||
case TIOCGETP:
|
case TIOCGETP:
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
u.argp->sg_erase = (M.TTY_SPEK >> 8) & 0377;
|
u.argp->sg_erase = (M.TTY_SPEK >> 8) & BYTE;
|
||||||
u.argp->sg_kill = (M.TTY_SPEK >> 0) & 0377;
|
u.argp->sg_kill = (M.TTY_SPEK >> 0) & BYTE;
|
||||||
u.argp->sg_flags = M.TTY_FLAGS;
|
u.argp->sg_flags = M.TTY_FLAGS & 0xFFFF;
|
||||||
|
speed = (M.TTY_FLAGS >> 16) & 0xFFFFL;
|
||||||
|
u.argp->sg_ispeed = speed & BYTE;
|
||||||
|
u.argp->sg_ospeed = (speed >> 8) & BYTE;
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
case TIOCGETC:
|
case TIOCGETC:
|
||||||
n = callx(FS, IOCTL);
|
n = callx(FS, IOCTL);
|
||||||
u.argt->t_intrc = (M.TTY_SPEK >> 24) & 0377;
|
u.argt->t_intrc = (M.TTY_SPEK >> 24) & BYTE;
|
||||||
u.argt->t_quitc = (M.TTY_SPEK >> 16) & 0377;
|
u.argt->t_quitc = (M.TTY_SPEK >> 16) & BYTE;
|
||||||
u.argt->t_startc = (M.TTY_SPEK >> 8) & 0377;
|
u.argt->t_startc = (M.TTY_SPEK >> 8) & BYTE;
|
||||||
u.argt->t_stopc = (M.TTY_SPEK >> 0) & 0377;
|
u.argt->t_stopc = (M.TTY_SPEK >> 0) & BYTE;
|
||||||
u.argt->t_eofc = (M.TTY_FLAGS >> 8) & 0377;
|
u.argt->t_eofc = (M.TTY_FLAGS >> 8) & BYTE;
|
||||||
u.argt->t_brkc = (M.TTY_FLAGS >> 8) & 0377;
|
u.argt->t_brkc = (M.TTY_FLAGS >> 8) & BYTE;
|
||||||
return(n);
|
return(n);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -150,6 +150,18 @@ phys_clicks *basep, *sizep; /* base and size for free_mem() */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
PUBLIC sys_kill(proc, sig)
|
||||||
|
int proc; /* which proc has exited */
|
||||||
|
int sig; /* signal number: 1 - 16 */
|
||||||
|
{
|
||||||
|
/* A proc has to be signaled via MM. Tell the kernel. */
|
||||||
|
|
||||||
|
M.m6_i1 = proc;
|
||||||
|
M.m6_i2 = sig;
|
||||||
|
callx(SYSTASK, SYS_KILL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PUBLIC int tell_fs(what, p1, p2, p3)
|
PUBLIC int tell_fs(what, p1, p2, p3)
|
||||||
int what, p1, p2, p3;
|
int what, p1, p2, p3;
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,6 @@ int *status;
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
k = callm1(MM, WAIT, 0, 0, 0, NIL_PTR, NIL_PTR, NIL_PTR);
|
k = callm1(MM, WAIT, 0, 0, 0, NIL_PTR, NIL_PTR, NIL_PTR);
|
||||||
if (status != 0) *status = M.m2_i1;
|
if (k >= 0 && status != 0) *status = M.m2_i1;
|
||||||
return(k);
|
return(k);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue