minix/test/test39.c
David van Moolenbroek e7974541d0 Rearrange endpoint number layout
The constants ANY, NONE, and SELF are now a function of the way the
endpoint number is split between a generation number and a process
slot number, rather than the other way around.  This allows for the
use of bit masking and shifting instead of the previous (and more
expensive) multiplication and division.

Change-Id: Id890eea74435444128c75eb0c89816b948f43c0b
2014-07-28 17:05:12 +02:00

37 lines
628 B
C

#include <stdio.h>
#include <minix/endpoint.h>
#include <minix/sys_config.h>
int max_error = 1;
#include "common.h"
void test39a(void);
int main(int argc, char *argv[])
{
start(39);
test39a();
quit();
return(-1); /* Unreachable */
}
void test39a()
{
int g, p;
subtest = 1;
for (g = 0; g <= _ENDPOINT_MAX_GENERATION; g++) {
for (p = -MAX_NR_TASKS; p < MAX_NR_PROCS; p++) {
endpoint_t ept;
int mg, mp;
ept = _ENDPOINT(g, p);
mg = _ENDPOINT_G(ept);
mp = _ENDPOINT_P(ept);
if (mg != g || mp != p) e(1);
if (g == 0 && ept != p) e(2);
if (ept == ANY || ept == SELF || ept == NONE) e(3);
}
}
}