📄 sys.c
字号:
/* MShowTec - www.mshowtec.com
** msLinux sys.c ver1.0
** 20051221 lmjx create limiao@mshowtec.com
**
*/
#define MSLINUX_SYS_C
#include "errno.h"
#include "kernel.h"
#include "sched.h"
int sys_ftime ()
{
return -ENOSYS;
}
int sys_break ()
{
return -ENOSYS;
}
int sys_ptrace ()
{
return -ENOSYS;
}
int sys_stty ()
{
return -ENOSYS;
}
int sys_gtty ()
{
return -ENOSYS;
}
int sys_rename ()
{
return -ENOSYS;
}
int sys_prof ()
{
return -ENOSYS;
}
int sys_setregid (int rgid, int egid)
{
if (rgid > 0)
{
if ((current->gid == rgid) || suser ())
current->gid = rgid;
else
return (-EPERM);
}
if (egid > 0)
{
if ((current->gid == egid) || (current->egid == egid) ||
(current->sgid == egid) || suser ())
current->egid = egid;
else
return (-EPERM);
}
return 0;
}
int sys_setgid (int gid)
{
return (sys_setregid (gid, gid));
}
int sys_acct ()
{
return -ENOSYS;
}
int sys_phys ()
{
return -ENOSYS;
}
int sys_lock ()
{
return -ENOSYS;
}
int sys_mpx ()
{
return -ENOSYS;
}
int sys_ulimit ()
{
return -ENOSYS;
}
int sys_setreuid (int ruid, int euid)
{
int old_ruid = current->uid;
if (ruid > 0)
{
if ((current->euid == ruid) || (old_ruid == ruid) || suser ())
current->uid = ruid;
else
return (-EPERM);
}
if (euid > 0)
{
if ((old_ruid == euid) || (current->euid == euid) || suser ())
current->euid = euid;
else
{
current->uid = old_ruid;
return (-EPERM);
}
}
return 0;
}
int sys_setuid (int uid)
{
return (sys_setreuid (uid, uid));
}
int sys_setpgid (int pid, int pgid)
{
int i;
if (!pid)
pid = current->pid;
if (!pgid)
pgid = current->pid;
for (i = 0; i < NR_TASKS; i++)
if (task[i] && task[i]->pid == pid)
{
if (task[i]->leader)
return -EPERM;
if (task[i]->session != current->session)
return -EPERM;
task[i]->pgrp = pgid;
return 0;
}
return -ESRCH;
}
int sys_getpgrp (void)
{
return current->pgrp;
}
int sys_setsid (void)
{
if (current->leader && !suser ())
return -EPERM;
current->leader = 1;
current->session = current->pgrp = current->pid;
return current->pgrp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -