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