Make service ABI backwards compatible again

This commit is contained in:
Erik van der Kouwe
2010-07-03 05:02:59 +00:00
parent 34a2864e27
commit 37325bd7c5
6 changed files with 129 additions and 22 deletions

View File

@@ -1281,9 +1281,9 @@ endpoint_t source;
}
rp->r_uid= rs_start->rss_uid;
rp->r_scheduler= rs_start->rss_scheduler;
rp->r_priority= rs_start->rss_priority;
rp->r_quantum= rs_start->rss_quantum;
s = rss_nice_decode(rs_start->rss_nice, &rp->r_scheduler,
&rp->r_priority, &rp->r_quantum);
if (s != OK) return(s);
if (rs_start->rss_flags & RSS_IPC_VALID)
{

View File

@@ -787,22 +787,30 @@ message *m_ptr;
*===========================================================================*/
PRIVATE int check_request(struct rs_start *rs_start)
{
int s;
endpoint_t rss_scheduler;
unsigned rss_priority, rss_quantum;
s = rss_nice_decode(rs_start->rss_nice, &rss_scheduler,
&rss_priority, &rss_quantum);
if (s != OK) return s;
/* Verify scheduling parameters */
if (rs_start->rss_scheduler != KERNEL &&
(rs_start->rss_scheduler < 0 ||
rs_start->rss_scheduler > LAST_SPECIAL_PROC_NR)) {
if (rss_scheduler != KERNEL &&
(rss_scheduler < 0 ||
rss_scheduler > LAST_SPECIAL_PROC_NR)) {
printf("RS: check_request: invalid scheduler %d\n",
rs_start->rss_scheduler);
rss_scheduler);
return EINVAL;
}
if (rs_start->rss_priority >= NR_SCHED_QUEUES) {
if (rss_priority >= NR_SCHED_QUEUES) {
printf("RS: check_request: priority %u out of range\n",
rs_start->rss_priority);
rss_priority);
return EINVAL;
}
if (rs_start->rss_quantum <= 0) {
if (rss_quantum <= 0) {
printf("RS: check_request: quantum %u out of range\n",
rs_start->rss_quantum);
rss_quantum);
return EINVAL;
}