1*0f4c859eSApple OSS Distributions #include <stdio.h> 2*0f4c859eSApple OSS Distributions #include <mach/mach.h> 3*0f4c859eSApple OSS Distributions #include <mach/message.h> 4*0f4c859eSApple OSS Distributions #include <unistd.h> 5*0f4c859eSApple OSS Distributions #include <assert.h> 6*0f4c859eSApple OSS Distributions #include <string.h> 7*0f4c859eSApple OSS Distributions #include <stdlib.h> 8*0f4c859eSApple OSS Distributions 9*0f4c859eSApple OSS Distributions static inline mach_port_type_t get_port_type(mach_port_t mp)10*0f4c859eSApple OSS Distributionsget_port_type(mach_port_t mp) 11*0f4c859eSApple OSS Distributions { 12*0f4c859eSApple OSS Distributions mach_port_type_t type = 0; 13*0f4c859eSApple OSS Distributions mach_port_type(mach_task_self(), mp, &type); 14*0f4c859eSApple OSS Distributions return type; 15*0f4c859eSApple OSS Distributions } 16*0f4c859eSApple OSS Distributions 17*0f4c859eSApple OSS Distributions int main()18*0f4c859eSApple OSS Distributionsmain() 19*0f4c859eSApple OSS Distributions { 20*0f4c859eSApple OSS Distributions mach_port_t port = MACH_PORT_NULL; 21*0f4c859eSApple OSS Distributions kern_return_t retval = KERN_SUCCESS; 22*0f4c859eSApple OSS Distributions 23*0f4c859eSApple OSS Distributions mach_port_t task = mach_task_self(); 24*0f4c859eSApple OSS Distributions 25*0f4c859eSApple OSS Distributions printf("Starting the receive right allocation loop\n"); 26*0f4c859eSApple OSS Distributions int i = 0; 27*0f4c859eSApple OSS Distributions while (!retval) { 28*0f4c859eSApple OSS Distributions retval = mach_port_allocate(task, MACH_PORT_RIGHT_RECEIVE, &port); 29*0f4c859eSApple OSS Distributions assert(retval == 0); 30*0f4c859eSApple OSS Distributions //printf("%d. allocate a port=[%d]\n", i, port); 31*0f4c859eSApple OSS Distributions assert(get_port_type(port) == MACH_PORT_TYPE_RECEIVE); 32*0f4c859eSApple OSS Distributions i++; 33*0f4c859eSApple OSS Distributions } 34*0f4c859eSApple OSS Distributions 35*0f4c859eSApple OSS Distributions exit(1); 36*0f4c859eSApple OSS Distributions } 37