00001
00002 #ifndef _MINIX_ENDPOINT_H
00003 #define _MINIX_ENDPOINT_H 1
00004
00005 #include <minix/sys_config.h>
00006 #include <minix/com.h>
00007 #include <limits.h>
00008 #include <minix/type.h>
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #define _ENDPOINT_GENERATION_SIZE (MAX_NR_TASKS+_MAX_MAGIC_PROC+1)
00020 #define _ENDPOINT_MAX_GENERATION (INT_MAX/_ENDPOINT_GENERATION_SIZE-1)
00021
00022
00023 #define _ENDPOINT(g, p) ((endpoint_t)((g) * _ENDPOINT_GENERATION_SIZE + (p)))
00024 #define _ENDPOINT_G(e) (((e)+MAX_NR_TASKS) / _ENDPOINT_GENERATION_SIZE)
00025 #define _ENDPOINT_P(e) \
00026 ((((e)+MAX_NR_TASKS) % _ENDPOINT_GENERATION_SIZE) - MAX_NR_TASKS)
00027
00028 #endif