e7974541d0
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
37 lines
628 B
C
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);
|
|
}
|
|
}
|
|
}
|