Added utime and utimes
This commit is contained in:
parent
13c61484db
commit
20a2ff3d16
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: svr4_stat.c,v 1.14 1995/10/14 20:24:43 christos Exp $ */
|
/* $NetBSD: svr4_stat.c,v 1.15 1995/12/19 07:12:53 christos Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994 Christos Zoulas
|
* Copyright (c) 1994 Christos Zoulas
|
||||||
@ -509,3 +509,48 @@ svr4_sys_utssys(p, v, retval)
|
|||||||
}
|
}
|
||||||
return ENOSYS;
|
return ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
svr4_sys_utime(p, v, retval)
|
||||||
|
register struct proc *p;
|
||||||
|
void *v;
|
||||||
|
register_t *retval;
|
||||||
|
{
|
||||||
|
struct svr4_sys_utime_args *uap = v;
|
||||||
|
struct svr4_utimbuf ub;
|
||||||
|
struct timeval tbuf[2];
|
||||||
|
struct sys_utimes_args ap;
|
||||||
|
int error;
|
||||||
|
caddr_t sg = stackgap_init(p->p_emul);
|
||||||
|
|
||||||
|
SVR4_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
|
||||||
|
SCARG(&ap, path) = SCARG(uap, path);
|
||||||
|
if (SCARG(uap, ubuf) == NULL) {
|
||||||
|
if ((error = copyin(SCARG(uap, ubuf), &ub, sizeof(ub))) != 0)
|
||||||
|
return error;
|
||||||
|
tbuf[0].tv_sec = ub.actime;
|
||||||
|
tbuf[0].tv_usec = 0;
|
||||||
|
tbuf[1].tv_sec = ub.modtime;
|
||||||
|
tbuf[1].tv_usec = 0;
|
||||||
|
SCARG(&ap, tptr) = stackgap_alloc(&sg, sizeof(tbuf));
|
||||||
|
if (error = copyout(tbuf, SCARG(&ap, tptr), sizeof(tbuf)) != 0)
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SCARG(&ap, tptr) = NULL;
|
||||||
|
return sys_utimes(p, &ap, retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
svr4_sys_utimes(p, v, retval)
|
||||||
|
register struct proc *p;
|
||||||
|
void *v;
|
||||||
|
register_t *retval;
|
||||||
|
{
|
||||||
|
struct svr4_sys_utimes_args *uap = v;
|
||||||
|
caddr_t sg = stackgap_init(p->p_emul);
|
||||||
|
SVR4_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
|
||||||
|
return sys_utimes(p, uap, retval);
|
||||||
|
}
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#define SVR4_SYS_getuid 24
|
#define SVR4_SYS_getuid 24
|
||||||
#define SVR4_SYS_alarm 27
|
#define SVR4_SYS_alarm 27
|
||||||
#define SVR4_SYS_fstat 28
|
#define SVR4_SYS_fstat 28
|
||||||
|
#define SVR4_SYS_utime 30
|
||||||
#define SVR4_SYS_access 33
|
#define SVR4_SYS_access 33
|
||||||
#define SVR4_SYS_sync 36
|
#define SVR4_SYS_sync 36
|
||||||
#define SVR4_SYS_kill 37
|
#define SVR4_SYS_kill 37
|
||||||
@ -106,6 +107,7 @@
|
|||||||
#define SVR4_SYS_systeminfo 139
|
#define SVR4_SYS_systeminfo 139
|
||||||
#define SVR4_SYS_seteuid 141
|
#define SVR4_SYS_seteuid 141
|
||||||
#define SVR4_SYS_fchroot 153
|
#define SVR4_SYS_fchroot 153
|
||||||
|
#define SVR4_SYS_utimes 154
|
||||||
#define SVR4_SYS_vhangup 155
|
#define SVR4_SYS_vhangup 155
|
||||||
#define SVR4_SYS_gettimeofday 156
|
#define SVR4_SYS_gettimeofday 156
|
||||||
#define SVR4_SYS_getitimer 157
|
#define SVR4_SYS_getitimer 157
|
||||||
|
@ -55,6 +55,11 @@ struct svr4_sys_fstat_args {
|
|||||||
syscallarg(struct svr4_stat *) sb;
|
syscallarg(struct svr4_stat *) sb;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct svr4_sys_utime_args {
|
||||||
|
syscallarg(char *) path;
|
||||||
|
syscallarg(struct svr4_utimbuf *) ubuf;
|
||||||
|
};
|
||||||
|
|
||||||
struct svr4_sys_access_args {
|
struct svr4_sys_access_args {
|
||||||
syscallarg(char *) path;
|
syscallarg(char *) path;
|
||||||
syscallarg(int) flags;
|
syscallarg(int) flags;
|
||||||
@ -281,6 +286,11 @@ struct svr4_sys_fchroot_args {
|
|||||||
syscallarg(int) fd;
|
syscallarg(int) fd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct svr4_sys_utimes_args {
|
||||||
|
syscallarg(char *) path;
|
||||||
|
syscallarg(struct timeval *) tptr;
|
||||||
|
};
|
||||||
|
|
||||||
struct svr4_sys_gettimeofday_args {
|
struct svr4_sys_gettimeofday_args {
|
||||||
syscallarg(struct timeval *) tp;
|
syscallarg(struct timeval *) tp;
|
||||||
};
|
};
|
||||||
@ -314,6 +324,7 @@ int sys_setuid __P((struct proc *, void *, register_t *));
|
|||||||
int sys_getuid __P((struct proc *, void *, register_t *));
|
int sys_getuid __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_alarm __P((struct proc *, void *, register_t *));
|
int svr4_sys_alarm __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_fstat __P((struct proc *, void *, register_t *));
|
int svr4_sys_fstat __P((struct proc *, void *, register_t *));
|
||||||
|
int svr4_sys_utime __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_access __P((struct proc *, void *, register_t *));
|
int svr4_sys_access __P((struct proc *, void *, register_t *));
|
||||||
int sys_sync __P((struct proc *, void *, register_t *));
|
int sys_sync __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_kill __P((struct proc *, void *, register_t *));
|
int svr4_sys_kill __P((struct proc *, void *, register_t *));
|
||||||
@ -389,6 +400,7 @@ int sys_adjtime __P((struct proc *, void *, register_t *));
|
|||||||
int svr4_sys_systeminfo __P((struct proc *, void *, register_t *));
|
int svr4_sys_systeminfo __P((struct proc *, void *, register_t *));
|
||||||
int sys_seteuid __P((struct proc *, void *, register_t *));
|
int sys_seteuid __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_fchroot __P((struct proc *, void *, register_t *));
|
int svr4_sys_fchroot __P((struct proc *, void *, register_t *));
|
||||||
|
int svr4_sys_utimes __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_vhangup __P((struct proc *, void *, register_t *));
|
int svr4_sys_vhangup __P((struct proc *, void *, register_t *));
|
||||||
int svr4_sys_gettimeofday __P((struct proc *, void *, register_t *));
|
int svr4_sys_gettimeofday __P((struct proc *, void *, register_t *));
|
||||||
int sys_getitimer __P((struct proc *, void *, register_t *));
|
int sys_getitimer __P((struct proc *, void *, register_t *));
|
||||||
|
@ -36,7 +36,7 @@ char *svr4_syscallnames[] = {
|
|||||||
"alarm", /* 27 = alarm */
|
"alarm", /* 27 = alarm */
|
||||||
"fstat", /* 28 = fstat */
|
"fstat", /* 28 = fstat */
|
||||||
"#29 (unimplemented pause)", /* 29 = unimplemented pause */
|
"#29 (unimplemented pause)", /* 29 = unimplemented pause */
|
||||||
"#30 (unimplemented utime)", /* 30 = unimplemented utime */
|
"utime", /* 30 = utime */
|
||||||
"#31 (unimplemented was stty)", /* 31 = unimplemented was stty */
|
"#31 (unimplemented was stty)", /* 31 = unimplemented was stty */
|
||||||
"#32 (unimplemented was gtty)", /* 32 = unimplemented was gtty */
|
"#32 (unimplemented was gtty)", /* 32 = unimplemented was gtty */
|
||||||
"access", /* 33 = access */
|
"access", /* 33 = access */
|
||||||
@ -172,7 +172,7 @@ char *svr4_syscallnames[] = {
|
|||||||
"#151 (unimplemented)", /* 151 = unimplemented */
|
"#151 (unimplemented)", /* 151 = unimplemented */
|
||||||
"#152 (unimplemented modctl)", /* 152 = unimplemented modctl */
|
"#152 (unimplemented modctl)", /* 152 = unimplemented modctl */
|
||||||
"fchroot", /* 153 = fchroot */
|
"fchroot", /* 153 = fchroot */
|
||||||
"#154 (unimplemented utimes)", /* 154 = unimplemented utimes */
|
"utimes", /* 154 = utimes */
|
||||||
"vhangup", /* 155 = vhangup */
|
"vhangup", /* 155 = vhangup */
|
||||||
"gettimeofday", /* 156 = gettimeofday */
|
"gettimeofday", /* 156 = gettimeofday */
|
||||||
"getitimer", /* 157 = getitimer */
|
"getitimer", /* 157 = getitimer */
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#include <sys/syscallargs.h>
|
#include <sys/syscallargs.h>
|
||||||
#include <compat/svr4/svr4_types.h>
|
#include <compat/svr4/svr4_types.h>
|
||||||
|
#include <compat/svr4/svr4_time.h>
|
||||||
#include <compat/svr4/svr4_signal.h>
|
#include <compat/svr4/svr4_signal.h>
|
||||||
#include <compat/svr4/svr4_ucontext.h>
|
#include <compat/svr4/svr4_ucontext.h>
|
||||||
#include <compat/svr4/svr4_syscallargs.h>
|
#include <compat/svr4/svr4_syscallargs.h>
|
||||||
@ -97,8 +98,8 @@ struct sysent svr4_sysent[] = {
|
|||||||
svr4_sys_fstat }, /* 28 = fstat */
|
svr4_sys_fstat }, /* 28 = fstat */
|
||||||
{ 0, 0,
|
{ 0, 0,
|
||||||
sys_nosys }, /* 29 = unimplemented pause */
|
sys_nosys }, /* 29 = unimplemented pause */
|
||||||
{ 0, 0,
|
{ 2, s(struct svr4_sys_utime_args),
|
||||||
sys_nosys }, /* 30 = unimplemented utime */
|
svr4_sys_utime }, /* 30 = utime */
|
||||||
{ 0, 0,
|
{ 0, 0,
|
||||||
sys_nosys }, /* 31 = unimplemented was stty */
|
sys_nosys }, /* 31 = unimplemented was stty */
|
||||||
{ 0, 0,
|
{ 0, 0,
|
||||||
@ -360,8 +361,8 @@ struct sysent svr4_sysent[] = {
|
|||||||
sys_nosys }, /* 152 = unimplemented modctl */
|
sys_nosys }, /* 152 = unimplemented modctl */
|
||||||
{ 1, s(struct svr4_sys_fchroot_args),
|
{ 1, s(struct svr4_sys_fchroot_args),
|
||||||
svr4_sys_fchroot }, /* 153 = fchroot */
|
svr4_sys_fchroot }, /* 153 = fchroot */
|
||||||
{ 0, 0,
|
{ 2, s(struct svr4_sys_utimes_args),
|
||||||
sys_nosys }, /* 154 = unimplemented utimes */
|
svr4_sys_utimes }, /* 154 = utimes */
|
||||||
{ 0, 0,
|
{ 0, 0,
|
||||||
svr4_sys_vhangup }, /* 155 = vhangup */
|
svr4_sys_vhangup }, /* 155 = vhangup */
|
||||||
{ 1, s(struct svr4_sys_gettimeofday_args),
|
{ 1, s(struct svr4_sys_gettimeofday_args),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: svr4_time.h,v 1.3 1994/10/29 00:43:28 christos Exp $ */
|
/* $NetBSD: svr4_time.h,v 1.4 1995/12/19 07:13:23 christos Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994 Christos Zoulas
|
* Copyright (c) 1994 Christos Zoulas
|
||||||
@ -33,4 +33,9 @@
|
|||||||
#include <compat/svr4/svr4_types.h>
|
#include <compat/svr4/svr4_types.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
struct svr4_utimbuf {
|
||||||
|
time_t actime;
|
||||||
|
time_t modtime;
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* !_SVR4_TIME_H_ */
|
#endif /* !_SVR4_TIME_H_ */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
$NetBSD: syscalls.master,v 1.14 1995/10/14 20:25:06 christos Exp $
|
$NetBSD: syscalls.master,v 1.15 1995/12/19 07:13:27 christos Exp $
|
||||||
|
|
||||||
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
|
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
|
||||||
|
|
||||||
@ -37,6 +37,7 @@
|
|||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#include <sys/syscallargs.h>
|
#include <sys/syscallargs.h>
|
||||||
#include <compat/svr4/svr4_types.h>
|
#include <compat/svr4/svr4_types.h>
|
||||||
|
#include <compat/svr4/svr4_time.h>
|
||||||
#include <compat/svr4/svr4_signal.h>
|
#include <compat/svr4/svr4_signal.h>
|
||||||
#include <compat/svr4/svr4_ucontext.h>
|
#include <compat/svr4/svr4_ucontext.h>
|
||||||
#include <compat/svr4/svr4_syscallargs.h>
|
#include <compat/svr4/svr4_syscallargs.h>
|
||||||
@ -73,7 +74,8 @@
|
|||||||
27 STD { int svr4_sys_alarm(unsigned sec); }
|
27 STD { int svr4_sys_alarm(unsigned sec); }
|
||||||
28 STD { int svr4_sys_fstat(int fd, struct svr4_stat *sb); }
|
28 STD { int svr4_sys_fstat(int fd, struct svr4_stat *sb); }
|
||||||
29 UNIMPL pause
|
29 UNIMPL pause
|
||||||
30 UNIMPL utime
|
30 STD { int svr4_sys_utime(char *path, \
|
||||||
|
struct svr4_utimbuf *ubuf); }
|
||||||
31 UNIMPL was stty
|
31 UNIMPL was stty
|
||||||
32 UNIMPL was gtty
|
32 UNIMPL was gtty
|
||||||
33 STD { int svr4_sys_access(char *path, int flags); }
|
33 STD { int svr4_sys_access(char *path, int flags); }
|
||||||
@ -240,7 +242,8 @@
|
|||||||
151 UNIMPL
|
151 UNIMPL
|
||||||
152 UNIMPL modctl
|
152 UNIMPL modctl
|
||||||
153 STD { int svr4_sys_fchroot(int fd); }
|
153 STD { int svr4_sys_fchroot(int fd); }
|
||||||
154 UNIMPL utimes
|
154 STD { int svr4_sys_utimes(char *path, \
|
||||||
|
struct timeval *tptr); }
|
||||||
155 STD { int svr4_sys_vhangup(void); }
|
155 STD { int svr4_sys_vhangup(void); }
|
||||||
156 STD { int svr4_sys_gettimeofday(struct timeval *tp); }
|
156 STD { int svr4_sys_gettimeofday(struct timeval *tp); }
|
||||||
157 NOARGS { int sys_getitimer(u_int which, \
|
157 NOARGS { int sys_getitimer(u_int which, \
|
||||||
|
Loading…
Reference in New Issue
Block a user