void Main(int argc, char *argv[]) { int ret; int perm; if (argc != 4) { Print("Usage: setacl <file> <uid> [r | w | rw | clear\n"); Exit(); } if (!strcmp(argv[3], "r")) { perm = O_READ; } else if (!strcmp(argv[3], "rw")) { perm = O_READ|O_WRITE; } else if (!strcmp(argv[3], "w")) { perm = O_WRITE; } else if (!strcmp(argv[3], "clear")) { perm = 0; } else { Print("Usage: setacl <file> <uid> [r | w | rw | clear\n"); Exit(); } ret = SetAcl(argv[1], atoi(argv[2]), perm); if (ret) { Print("SetAcl returned %d\n", ret); } }
static int Sys_SetAcl(struct Interrupt_State *state) { char *path; struct File *file; int rc = 0; rc = get_path_from_registers(state->ebx, state->ecx, &path); if(rc != 0) { return rc; } Enable_Interrupts(); rc = SetAcl(path, state->edx, state->esi); Disable_Interrupts(); Free(path); return rc; }