コード例 #1
0
ファイル: kern_tc.c プロジェクト: 7shi/openbsd-loongson-vc
/* Report or change the active timecounter hardware. */
int
sysctl_tc_hardware(void *oldp, size_t *oldlenp, void *newp, size_t newlen)
{
	char newname[32];
	struct timecounter *newtc, *tc;
	int error;

	tc = timecounter;
	strlcpy(newname, tc->tc_name, sizeof(newname));

	error = sysctl_string(oldp, oldlenp, newp, newlen, newname, sizeof(newname));
	if (error != 0 || strcmp(newname, tc->tc_name) == 0)
		return (error);
	for (newtc = timecounters; newtc != NULL; newtc = newtc->tc_next) {
		if (strcmp(newname, newtc->tc_name) != 0)
			continue;

		/* Warm up new timecounter. */
		(void)newtc->tc_get_timecount(newtc);
		(void)newtc->tc_get_timecount(newtc);

		timecounter = newtc;
		return (0);
	}
	return (EINVAL);
}
コード例 #2
0
/* The generic string strategy routine: */
static int sysctl_uts_string(ctl_table *table,
		  void __user *oldval, size_t __user *oldlenp,
		  void __user *newval, size_t newlen)
{
	struct ctl_table uts_table;
	int r, write;
	write = newval && newlen;
	memcpy(&uts_table, table, sizeof(uts_table));
	uts_table.data = get_uts(table, write);
	r = sysctl_string(&uts_table, oldval, oldlenp, newval, newlen);
	put_uts(table, write, uts_table.data);
	return r;
}
コード例 #3
0
ファイル: sysctl.c プロジェクト: 274914765/C
/* Strategy function to write EEPROM after changing string entry */
int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
        void *oldval, size_t *oldlenp,
        void *newval, size_t newlen)
{
    int r;

    r = sysctl_string(table, name,
              nlen, oldval, oldlenp, newval, newlen);
    if (r < 0)
        return r;

    if (newval && newlen)
        lasat_write_eeprom_info();

    return 0;
}
コード例 #4
0
static int sysctl_tcp_congestion_control(ctl_table *table,
					 void __user *oldval,
					 size_t __user *oldlenp,
					 void __user *newval, size_t newlen)
{
	char val[TCP_CA_NAME_MAX];
	ctl_table tbl = {
		.data = val,
		.maxlen = TCP_CA_NAME_MAX,
	};
	int ret;

	tcp_get_default_congestion_control(val);
	ret = sysctl_string(&tbl, oldval, oldlenp, newval, newlen);
	if (ret == 1 && newval && newlen)
		ret = tcp_set_default_congestion_control(val);
	return ret;
}
コード例 #5
0
ファイル: sysctl.c プロジェクト: b3rnik/dsl-n55u-bender
/* Strategy function to write EEPROM after changing string entry */
int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
                       void *oldval, size_t *oldlenp,
                       void *newval, size_t newlen)
{
    int r;
    mutex_lock(&lasat_info_mutex);
    r = sysctl_string(table, name,
                      nlen, oldval, oldlenp, newval, newlen);
    if (r < 0) {
        mutex_unlock(&lasat_info_mutex);
        return r;
    }
    if (newval && newlen) {
        lasat_write_eeprom_info();
    }
    mutex_unlock(&lasat_info_mutex);
    return 1;
}