[PATCH 2/5] syndaemon: move shm code into shm_init().

Henrik Rydberg rydberg at euromail.se
Mon Mar 2 14:25:49 PST 2009


Peter Hutterer wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>  tools/syndaemon.c |   37 +++++++++++++++++++++++--------------
>  1 files changed, 23 insertions(+), 14 deletions(-)
> 
> diff --git a/tools/syndaemon.c b/tools/syndaemon.c
> index 820b36c..64a26da 100644
> --- a/tools/syndaemon.c
> +++ b/tools/syndaemon.c
> @@ -431,6 +431,28 @@ void record_main_loop(Display* display, double idle_time) {
>  }
>  #endif /* HAVE_XRECORD */
>  
> +static int
> +shm_init()
> +{
> +    int shmid;
> +
> +    /* Connect to the shared memory area */
> +    if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
> +	if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
> +	    fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
> +	    return 0;
> +	} else {
> +	    fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
> +	    return 0;
> +	}
> +    }
> +    if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
> +	perror("shmat");
> +	return 0;
> +    }
> +    return 1;
> +}
> +
>  int
>  main(int argc, char *argv[])
>  {
> @@ -438,7 +460,6 @@ main(int argc, char *argv[])
>      int poll_delay = 200000;	    /* 200 ms */
>      Display *display;
>      int c;
> -    int shmid;
>      int use_xrecord = 1;
>  
>  
> @@ -485,20 +506,8 @@ main(int argc, char *argv[])
>  	exit(2);
>      }
>  
> -    /* Connect to the shared memory area */
> -    if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
> -	if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
> -	    fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
> -	    exit(2);
> -	} else {
> -	    fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
> -	    exit(2);
> -	}
> -    }
> -    if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
> -	perror("shmat");
> +    if (!shm_init())
>  	exit(2);
> -    }
>  
>      /* Install a signal handler to restore synaptics parameters on exit */
>      install_signal_handler();

ACK

Henrik



More information about the xorg-devel mailing list