1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 /* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ 28 /* Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */ 29 /* All Rights Reserved */ 30 31 #include <sys/proc.h> 32 #include <sys/priocntl.h> 33 #include <sys/class.h> 34 #include <sys/disp.h> 35 #include <sys/rt.h> 36 #include <sys/rtpriocntl.h> 37 #include <sys/modctl.h> 38 39 /* 40 * The purpose of this file is to allow a user to make their own 41 * rt_dptbl. The contents of this file should be included in the 42 * rt_dptbl(5) man page with proper instructions for making 43 * and replacing the RT_DPTBL.kmod in modules/sched. This was the 44 * only way to provide functionality equivalent to the mkboot/cunix 45 * method in SVr4 without having the utilities mkboot/cunix in 46 * SunOS/Svr4. 47 * It is recommended that the system calls be used to change the time 48 * quantums instead of re-building the module. 49 */ 50 51 static struct modlmisc modlmisc = { 52 &mod_miscops, "realtime dispatch table" 53 }; 54 55 static struct modlinkage modlinkage = { 56 MODREV_1, &modlmisc, 0 57 }; 58 59 int 60 _init() 61 { 62 return (mod_install(&modlinkage)); 63 } 64 65 int 66 _info(struct modinfo *modinfop) 67 { 68 return (mod_info(&modlinkage, modinfop)); 69 } 70 71 #define RTGPPRIO0 100 /* Global priority for RT priority 0 */ 72 73 rtdpent_t config_rt_dptbl[] = { 74 75 /* prilevel Time quantum */ 76 77 RTGPPRIO0, 100, 78 RTGPPRIO0+1, 100, 79 RTGPPRIO0+2, 100, 80 RTGPPRIO0+3, 100, 81 RTGPPRIO0+4, 100, 82 RTGPPRIO0+5, 100, 83 RTGPPRIO0+6, 100, 84 RTGPPRIO0+7, 100, 85 RTGPPRIO0+8, 100, 86 RTGPPRIO0+9, 100, 87 RTGPPRIO0+10, 80, 88 RTGPPRIO0+11, 80, 89 RTGPPRIO0+12, 80, 90 RTGPPRIO0+13, 80, 91 RTGPPRIO0+14, 80, 92 RTGPPRIO0+15, 80, 93 RTGPPRIO0+16, 80, 94 RTGPPRIO0+17, 80, 95 RTGPPRIO0+18, 80, 96 RTGPPRIO0+19, 80, 97 RTGPPRIO0+20, 60, 98 RTGPPRIO0+21, 60, 99 RTGPPRIO0+22, 60, 100 RTGPPRIO0+23, 60, 101 RTGPPRIO0+24, 60, 102 RTGPPRIO0+25, 60, 103 RTGPPRIO0+26, 60, 104 RTGPPRIO0+27, 60, 105 RTGPPRIO0+28, 60, 106 RTGPPRIO0+29, 60, 107 RTGPPRIO0+30, 40, 108 RTGPPRIO0+31, 40, 109 RTGPPRIO0+32, 40, 110 RTGPPRIO0+33, 40, 111 RTGPPRIO0+34, 40, 112 RTGPPRIO0+35, 40, 113 RTGPPRIO0+36, 40, 114 RTGPPRIO0+37, 40, 115 RTGPPRIO0+38, 40, 116 RTGPPRIO0+39, 40, 117 RTGPPRIO0+40, 20, 118 RTGPPRIO0+41, 20, 119 RTGPPRIO0+42, 20, 120 RTGPPRIO0+43, 20, 121 RTGPPRIO0+44, 20, 122 RTGPPRIO0+45, 20, 123 RTGPPRIO0+46, 20, 124 RTGPPRIO0+47, 20, 125 RTGPPRIO0+48, 20, 126 RTGPPRIO0+49, 20, 127 RTGPPRIO0+50, 10, 128 RTGPPRIO0+51, 10, 129 RTGPPRIO0+52, 10, 130 RTGPPRIO0+53, 10, 131 RTGPPRIO0+54, 10, 132 RTGPPRIO0+55, 10, 133 RTGPPRIO0+56, 10, 134 RTGPPRIO0+57, 10, 135 RTGPPRIO0+58, 10, 136 RTGPPRIO0+59, 10 137 }; 138 139 /* 140 * Return the address of config_rt_dptbl 141 */ 142 rtdpent_t * 143 rt_getdptbl() 144 { 145 return (config_rt_dptbl); 146 } 147