lib/master.c
branchstable-1.5
changeset 2712 5d21d80777a6
parent 2703 045624f7f4c3
equal deleted inserted replaced
2711:a5c4ccc02285 2712:5d21d80777a6
   541     }
   541     }
   542 
   542 
   543     master->process_data_size = io.process_data_size;
   543     master->process_data_size = io.process_data_size;
   544 
   544 
   545     if (master->process_data_size) {
   545     if (master->process_data_size) {
   546 #ifdef USE_RTDM
       
   547         /* memory-mapping was already done in kernel. The user-space addess is
       
   548          * provided in the ioctl data.
       
   549          */
       
   550         master->process_data = io.process_data;
       
   551 #else
       
   552         master->process_data = mmap(0, master->process_data_size,
   546         master->process_data = mmap(0, master->process_data_size,
   553                 PROT_READ | PROT_WRITE, MAP_SHARED, master->fd, 0);
   547                 PROT_READ | PROT_WRITE, MAP_SHARED, master->fd, 0);
   554         if (master->process_data == MAP_FAILED) {
   548         if (master->process_data == MAP_FAILED) {
   555             fprintf(stderr, "Failed to map process data: %s\n",
   549             fprintf(stderr, "Failed to map process data: %s\n",
   556                     strerror(errno));
   550                     strerror(errno));
   557             master->process_data = NULL;
   551             master->process_data = NULL;
   558             master->process_data_size = 0;
   552             master->process_data_size = 0;
   559             return -errno;
   553             return -errno;
   560         }
   554         }
   561 #endif
       
   562 
   555 
   563         // Access the mapped region to cause the initial page fault
   556         // Access the mapped region to cause the initial page fault
   564         master->process_data[0] = 0x00;
   557         master->process_data[0] = 0x00;
   565     }
   558     }
   566 
   559