Example #1
0
/*
 * 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;
}
Example #2
0
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);
}
Example #3
0
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;
}