/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */ /* All Rights Reserved */ #include #include #include #include #include #include #include /* * The purpose of this file is to allow a user to make their own * rt_dptbl. The contents of this file should be included in the * rt_dptbl(5) man page with proper instructions for making * and replacing the RT_DPTBL.kmod in modules/sched. This was the * only way to provide functionality equivalent to the mkboot/cunix * method in SVr4 without having the utilities mkboot/cunix in * SunOS/Svr4. * It is recommended that the system calls be used to change the time * quantums instead of re-building the module. */ static struct modlmisc modlmisc = { &mod_miscops, "realtime dispatch table" }; static struct modlinkage modlinkage = { MODREV_1, &modlmisc, 0 }; int _init() { return (mod_install(&modlinkage)); } int _info(struct modinfo *modinfop) { return (mod_info(&modlinkage, modinfop)); } #define RTGPPRIO0 100 /* Global priority for RT priority 0 */ rtdpent_t config_rt_dptbl[] = { /* prilevel Time quantum */ RTGPPRIO0, 100, RTGPPRIO0+1, 100, RTGPPRIO0+2, 100, RTGPPRIO0+3, 100, RTGPPRIO0+4, 100, RTGPPRIO0+5, 100, RTGPPRIO0+6, 100, RTGPPRIO0+7, 100, RTGPPRIO0+8, 100, RTGPPRIO0+9, 100, RTGPPRIO0+10, 80, RTGPPRIO0+11, 80, RTGPPRIO0+12, 80, RTGPPRIO0+13, 80, RTGPPRIO0+14, 80, RTGPPRIO0+15, 80, RTGPPRIO0+16, 80, RTGPPRIO0+17, 80, RTGPPRIO0+18, 80, RTGPPRIO0+19, 80, RTGPPRIO0+20, 60, RTGPPRIO0+21, 60, RTGPPRIO0+22, 60, RTGPPRIO0+23, 60, RTGPPRIO0+24, 60, RTGPPRIO0+25, 60, RTGPPRIO0+26, 60, RTGPPRIO0+27, 60, RTGPPRIO0+28, 60, RTGPPRIO0+29, 60, RTGPPRIO0+30, 40, RTGPPRIO0+31, 40, RTGPPRIO0+32, 40, RTGPPRIO0+33, 40, RTGPPRIO0+34, 40, RTGPPRIO0+35, 40, RTGPPRIO0+36, 40, RTGPPRIO0+37, 40, RTGPPRIO0+38, 40, RTGPPRIO0+39, 40, RTGPPRIO0+40, 20, RTGPPRIO0+41, 20, RTGPPRIO0+42, 20, RTGPPRIO0+43, 20, RTGPPRIO0+44, 20, RTGPPRIO0+45, 20, RTGPPRIO0+46, 20, RTGPPRIO0+47, 20, RTGPPRIO0+48, 20, RTGPPRIO0+49, 20, RTGPPRIO0+50, 10, RTGPPRIO0+51, 10, RTGPPRIO0+52, 10, RTGPPRIO0+53, 10, RTGPPRIO0+54, 10, RTGPPRIO0+55, 10, RTGPPRIO0+56, 10, RTGPPRIO0+57, 10, RTGPPRIO0+58, 10, RTGPPRIO0+59, 10 }; /* * Return the address of config_rt_dptbl */ rtdpent_t * rt_getdptbl() { return (config_rt_dptbl); }