Hi

On Wed, Mar 9, 2016 at 9:14 PM, Markus Armbruster <arm...@redhat.com> wrote:
>> @@ -77,7 +77,7 @@ ivshmem_server_parse_args(IvshmemServerArgs *args, int 
>> argc, char *argv[])
>>                         "F"  /* foreground */
>>                         "p:" /* pid_file */
>>                         "S:" /* unix_socket_path */
>> -                       "m:" /* shm_path */
>> +                       "m:" /* dirname */
>
> The existing comments all name the member of args set by the option.
> There is no member dirname.

I read from help: "-m <dirname>: where to create shared memory"

>
>>                         "M:" /* shm_path */
>>                         "l:" /* shm_size */
>>                         "n:" /* n_vectors */
>> @@ -106,13 +106,15 @@ ivshmem_server_parse_args(IvshmemServerArgs *args, int 
>> argc, char *argv[])
>>              break;
>>
>>          case 'M': /* shm_path */
>> -            args->shm_path = optarg;
>> -            args->use_shm_open = true;
>> -            break;
>> +        case 'm': /* dirname */
>> +            if (args->shm_path) {
>> +                fprintf(stderr, "Please specify either -m or -M.\n");
>> +                ivshmem_server_help(argv[0]);
>> +                exit(1);
>> +            }
>>
>> -        case 'm': /* shm_path */
>>              args->shm_path = optarg;
>> -            args->use_shm_open = false;
>> +            args->use_shm_open = c == 'M';
>
> I think I'll steal this idea :)

feel free

>
>>              break;
>>
>>          case 'l': /* shm_size */
>> @@ -207,7 +209,7 @@ main(int argc, char *argv[])
>>          .foreground = IVSHMEM_SERVER_DEFAULT_FOREGROUND,
>>          .pid_file = IVSHMEM_SERVER_DEFAULT_PID_FILE,
>>          .unix_socket_path = IVSHMEM_SERVER_DEFAULT_UNIX_SOCK_PATH,
>> -        .shm_path = IVSHMEM_SERVER_DEFAULT_SHM_PATH,
>> +        .shm_path = NULL,
>>          .use_shm_open = true,
>>          .shm_size = IVSHMEM_SERVER_DEFAULT_SHM_SIZE,
>>          .n_vectors = IVSHMEM_SERVER_DEFAULT_N_VECTORS,
>> @@ -237,8 +239,9 @@ main(int argc, char *argv[])
>>
>>      /* init the ivshms structure */
>>      if (ivshmem_server_init(&server, args.unix_socket_path,
>> -                            args.shm_path, args.use_shm_open,
>> -                            args.shm_size, args.n_vectors, args.verbose) < 
>> 0) {
>> +                            args.shm_path ?: 
>> IVSHMEM_SERVER_DEFAULT_SHM_PATH,
>> +                            args.use_shm_open, args.shm_size, 
>> args.n_vectors,
>> +                            args.verbose) < 0) {
>>          fprintf(stderr, "cannot init server\n");
>>          goto err;
>>      }

thanks

-- 
Marc-André Lureau

Reply via email to