/* * This is the system call interface. This communicates with * the user-level programs. Currently this only supports diskquota * calls. Maybe we need to add the process quotas etc. in the future, * but we probably should use rlimits for that. */ asmlinkage long sys_quotactl(unsigned int cmd, const char *special, qid_t id, caddr_t addr) { uint cmds, type; struct super_block *sb = NULL; int ret = -EINVAL; lock_kernel(); cmds = cmd >> SUBCMDSHIFT; type = cmd & SUBCMDMASK; #ifdef CONFIG_QIFACE_COMPAT if (cmds != Q_V1_GETSTATS && cmds != Q_V2_GETSTATS && IS_ERR(sb = resolve_dev(special))) { ret = PTR_ERR(sb); sb = NULL; goto out; } if (!NEW_COMMAND(cmds) && !XQM_COMMAND(cmds)) { if ((ret = check_compat_quotactl_valid(sb, type, cmds, id)) < 0) goto out; ret = do_compat_quotactl(sb, type, cmds, id, addr); goto out; } #else if (IS_ERR(sb = resolve_dev(special))) { ret = PTR_ERR(sb); sb = NULL; goto out; } #endif if ((ret = check_quotactl_valid(sb, type, cmds, id)) < 0) goto out; ret = do_quotactl(sb, type, cmds, id, addr); out: if (sb) drop_super(sb); unlock_kernel(); return ret; }
void initMiscCommands() { // nrt NEW_COMMAND(none); NEW_COMMAND(notify); NEW_COMMAND(status); NEW_COMMAND(quit); NEW_COMMAND(clearSched); NEW_COMMAND(d_recv); NEW_COMMAND(d_load); NEW_COMMAND(d_loadDir); NEW_COMMAND(d_freeAll); NEW_COMMAND(d_free); NEW_COMMAND(s_new); NEW_COMMAND(s_newargs); NEW_COMMAND(n_trace); NEW_COMMAND(n_free); NEW_COMMAND(n_run); NEW_COMMAND(u_cmd); NEW_COMMAND(cmd); //NEW_COMMAND(n_cmd); NEW_COMMAND(n_map); NEW_COMMAND(n_mapn); NEW_COMMAND(n_mapa); NEW_COMMAND(n_mapan); NEW_COMMAND(n_set); NEW_COMMAND(n_setn); NEW_COMMAND(n_fill); NEW_COMMAND(n_before); NEW_COMMAND(n_after); NEW_COMMAND(n_order); NEW_COMMAND(g_new); NEW_COMMAND(g_head); NEW_COMMAND(g_tail); NEW_COMMAND(g_freeAll); NEW_COMMAND(g_deepFree); NEW_COMMAND(p_new); NEW_COMMAND(b_alloc); NEW_COMMAND(b_allocRead); NEW_COMMAND(b_allocReadChannel); NEW_COMMAND(b_read); NEW_COMMAND(b_readChannel); NEW_COMMAND(b_write); NEW_COMMAND(b_free); NEW_COMMAND(b_close); NEW_COMMAND(b_zero); NEW_COMMAND(b_set); NEW_COMMAND(b_setn); NEW_COMMAND(b_fill); NEW_COMMAND(b_gen); NEW_COMMAND(c_set); NEW_COMMAND(c_setn); NEW_COMMAND(c_fill); NEW_COMMAND(dumpOSC); NEW_COMMAND(c_get); NEW_COMMAND(c_getn); NEW_COMMAND(b_get); NEW_COMMAND(b_getn); NEW_COMMAND(s_get); NEW_COMMAND(s_getn); NEW_COMMAND(n_query); NEW_COMMAND(b_query); NEW_COMMAND(s_noid); NEW_COMMAND(sync); NEW_COMMAND(g_dumpTree); NEW_COMMAND(g_queryTree); NEW_COMMAND(error); }
bool IChatHandler::init(IWorldServer *_server) { FDASSERT(_server); m_pserver = _server; //init commands IWorldSettings::CommandSettings &t_settings = m_pserver->getSettings()->Commands; #define NEW_COMMAND(name) m_cmdHandles.push_back(CommandHandle(&t_settings.name, &IChatHandler::_sCmd_##name)) NEW_COMMAND(Info); NEW_COMMAND(Coin); NEW_COMMAND(Dice); NEW_COMMAND(Penya); NEW_COMMAND(Level); NEW_COMMAND(AccessLevel); NEW_COMMAND(ClearInv); NEW_COMMAND(DropInv); NEW_COMMAND(Shout); NEW_COMMAND(Item); NEW_COMMAND(Stat); NEW_COMMAND(Notice); NEW_COMMAND(Pos); NEW_COMMAND(Name); NEW_COMMAND(Exp); NEW_COMMAND(AddExp); NEW_COMMAND(Kill); NEW_COMMAND(Job); NEW_COMMAND(Points); NEW_COMMAND(GetPoints); NEW_COMMAND(PlayerInfo); NEW_COMMAND(Immortal); NEW_COMMAND(OneHit); NEW_COMMAND(God); NEW_COMMAND(SetAccessLevel); NEW_COMMAND(Mob); NEW_COMMAND(CreateSpawn); NEW_COMMAND(CreateItemList); NEW_COMMAND(Place); NEW_COMMAND(Ban); NEW_COMMAND(PvpPoints); NEW_COMMAND(PkPoints); NEW_COMMAND(Disposition); NEW_COMMAND(Weather); NEW_COMMAND(Revive); #undef NEW_COMMAND return true; }