int shell_groupdel(int argc, char **argv) { if (argc != 1) { printf("usage: groupdel USERNAME\n"); return -1; } _SysCall(SYSTEM_GROUPDEL, argv[0]); return 0; }
/** GROUP **/ int shell_groupadd(int argc, char **argv) { if (argc != 2) { printf("usage: groupadd GROUP PASSWORD\n"); return -1; } _SysCall(SYSTEM_GROUPADD, argv[0], argv[1]); return 0; }
int shell_usersetgid(int argc, char **argv) { if (argc != 2) { printf("usage: usersetgid USERNAME GID\n"); return -1; } _SysCall(SYSTEM_USERSETGID, argv[0], atoi(argv[1])); return 0; }
int shell_userdel(int argc, char **argv) { if (argc != 1) { printf("usage: userdel USERNAME\n"); return -1; } _SysCall(SYSTEM_USERDEL, argv[0]); return 0; }
// Permissions int shell_useradd(int argc, char **argv) { if (argc != 2) { printf("usage: useradd USERNAME PASSWORD\n"); return -1; } _SysCall(SYSTEM_USERADD, argv[0], argv[1]); return 0; }
int shell_userlist(int argc, char **argv) { if (argc != 0) { printf("usage: userlist\n"); return -1; } calluser_t userlist[USER_MAX]; _SysCall(SYSTEM_USERLIST, userlist); printf("\tuid\tgid\tusername\n"); printf("\t---\t---\t--------\n"); for (int i = 0; i < USER_MAX; ++i) { calluser_t user = userlist[i]; if (user.uid != NO_USER) { printf("\t%d\t%d\t%s\n", user.uid, user.gid, user.userName); } } return 0; }
int shell_grouplist(int argc, char **argv) { if (argc != 0) { printf("usage: grouplist\n"); return -1; } callgroup_t grouplist[GROUP_MAX]; _SysCall(SYSTEM_GROUPLIST, grouplist); printf("\tgid\tgroupname\n"); printf("\t---\t---------\n"); int i; for (i = 0; i < GROUP_MAX; ++i) { callgroup_t group = grouplist[i]; if (group.gid != NO_GROUP) { printf("\t%d\t%s\n", group.gid, group.groupName); } } return 0; }
u32int yield() { _SysCall(SYSTEM_YIELD); return 0; }
/* fd = File descriptor of file into which data is written. buffer = Data to be written.. count = Maximum number of bytes. */ size_t __write(int fd, const void * buffer, size_t count) { _SysCall(SYSTEM_WRITE, fd, buffer, count); return count; }
/* fd = File descriptor referring to the open file. buffer = Storage location for data. count = Maximum number of bytes. */ size_t __read(int fd, void * buffer, size_t count) { _SysCall(SYSTEM_READ,fd, buffer, count); return count; }