From: <sk...@us...> - 2010-09-23 12:01:00
|
Revision: 2394 http://linuxconsole.svn.sourceforge.net/linuxconsole/?rev=2394&view=rev Author: skitt Date: 2010-09-23 12:00:54 +0000 (Thu, 23 Sep 2010) Log Message: ----------- ioctl() return values are negative if an error occurs. A positive value can be returned legitimately. This patch is required for jscal to work with kernels starting with 2.6.32; the axis and button map ioctls return the size of the buffer used when everything goes well. Modified Paths: -------------- trunk/utils/evtest.c trunk/utils/ffcfstress.c trunk/utils/fftest.c trunk/utils/inputattach.c trunk/utils/jscal.c Modified: trunk/utils/evtest.c =================================================================== --- trunk/utils/evtest.c 2010-09-23 11:57:57 UTC (rev 2393) +++ trunk/utils/evtest.c 2010-09-23 12:00:54 UTC (rev 2394) @@ -317,7 +317,7 @@ return 1; } - if (ioctl(fd, EVIOCGVERSION, &version)) { + if (ioctl(fd, EVIOCGVERSION, &version) < 0) { perror("evtest: can't get version"); return 1; } Modified: trunk/utils/ffcfstress.c =================================================================== --- trunk/utils/ffcfstress.c 2010-09-23 11:57:57 UTC (rev 2393) +++ trunk/utils/ffcfstress.c 2010-09-23 12:00:54 UTC (rev 2394) @@ -193,7 +193,7 @@ effect.u.constant.envelope.fade_level=0; /* Upload effect */ - if (ioctl(device_handle,EVIOCSFF,&effect)==-1) { + if (ioctl(device_handle,EVIOCSFF,&effect)<0) { fprintf(stderr,"ERROR: uploading effect failed (%s) [%s:%d]\n", strerror(errno),__FILE__,__LINE__); exit(1); @@ -219,7 +219,7 @@ /* Delete effect */ if (stop_and_play && effect.id!=-1) { - if (ioctl(device_handle,EVIOCRMFF,effect.id)==-1) { + if (ioctl(device_handle,EVIOCRMFF,effect.id)<0) { fprintf(stderr,"ERROR: removing effect failed (%s) [%s:%d]\n", strerror(errno),__FILE__,__LINE__); exit(1); @@ -236,7 +236,7 @@ effect.u.constant.envelope.fade_level=(short)(force*32767.0); /* only to be safe */ /* Upload effect */ - if (ioctl(device_handle,EVIOCSFF,&effect)==-1) { + if (ioctl(device_handle,EVIOCSFF,&effect)<0) { perror("upload effect"); /* We do not exit here. Indeed, too frequent updates may be * refused, but that is not a fatal error */ Modified: trunk/utils/fftest.c =================================================================== --- trunk/utils/fftest.c 2010-09-23 11:57:57 UTC (rev 2393) +++ trunk/utils/fftest.c 2010-09-23 12:00:54 UTC (rev 2394) @@ -86,7 +86,7 @@ printf("Device %s opened\n", device_file_name); /* Query device */ - if (ioctl(fd, EVIOCGBIT(EV_FF, sizeof(unsigned long) * 4), features) == -1) { + if (ioctl(fd, EVIOCGBIT(EV_FF, sizeof(unsigned long) * 4), features) < 0) { perror("Ioctl query"); exit(1); } @@ -107,7 +107,7 @@ printf("\nNumber of simultaneous effects: "); - if (ioctl(fd, EVIOCGEFFECTS, &n_effects) == -1) { + if (ioctl(fd, EVIOCGEFFECTS, &n_effects) < 0) { perror("Ioctl number of effects"); } @@ -131,7 +131,7 @@ effects[0].replay.length = 20000; /* 20 seconds */ effects[0].replay.delay = 0; - if (ioctl(fd, EVIOCSFF, &effects[0]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[0]) < 0) { perror("Upload effects[0]"); } @@ -149,7 +149,7 @@ effects[1].replay.length = 20000; /* 20 seconds */ effects[1].replay.delay = 0; - if (ioctl(fd, EVIOCSFF, &effects[1]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[1]) < 0) { perror("Upload effects[1]"); } @@ -168,7 +168,7 @@ effects[2].replay.length = 20000; /* 20 seconds */ effects[2].replay.delay = 0; - if (ioctl(fd, EVIOCSFF, &effects[2]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[2]) < 0) { perror("Upload effects[2]"); } @@ -187,7 +187,7 @@ effects[3].replay.length = 20000; /* 20 seconds */ effects[3].replay.delay = 0; - if (ioctl(fd, EVIOCSFF, &effects[3]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[3]) < 0) { perror("Upload effects[3]"); } @@ -199,7 +199,7 @@ effects[4].replay.length = 5000; effects[4].replay.delay = 1000; - if (ioctl(fd, EVIOCSFF, &effects[4]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[4]) < 0) { perror("Upload effects[4]"); } @@ -211,7 +211,7 @@ effects[5].replay.length = 5000; effects[5].replay.delay = 0; - if (ioctl(fd, EVIOCSFF, &effects[5]) == -1) { + if (ioctl(fd, EVIOCSFF, &effects[5]) < 0) { perror("Upload effects[5]"); } Modified: trunk/utils/inputattach.c =================================================================== --- trunk/utils/inputattach.c 2010-09-23 11:57:57 UTC (rev 2393) +++ trunk/utils/inputattach.c 2010-09-23 12:00:54 UTC (rev 2394) @@ -281,10 +281,10 @@ int count, line; /* Turn DTR off, otherwise the Twiddler won't send any data. */ - if (ioctl(fd, TIOCMGET, &line)) + if (ioctl(fd, TIOCMGET, &line) < 0) return -1; line &= ~TIOCM_DTR; - if (ioctl(fd, TIOCMSET, &line)) + if (ioctl(fd, TIOCMSET, &line) < 0) return -1; /* @@ -648,14 +648,14 @@ } ldisc = N_MOUSE; - if (ioctl(fd, TIOCSETD, &ldisc)) { + if (ioctl(fd, TIOCSETD, &ldisc) < 0) { fprintf(stderr, "inputattach: can't set line discipline\n"); return EXIT_FAILURE; } devt = type->type | (id << 8) | (extra << 16); - if (ioctl(fd, SPIOCSTYPE, &devt)) { + if (ioctl(fd, SPIOCSTYPE, &devt) < 0) { fprintf(stderr, "inputattach: can't set device type\n"); return EXIT_FAILURE; } Modified: trunk/utils/jscal.c =================================================================== --- trunk/utils/jscal.c 2010-09-23 11:57:57 UTC (rev 2393) +++ trunk/utils/jscal.c 2010-09-23 12:00:54 UTC (rev 2394) @@ -179,15 +179,15 @@ { int i,j; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } - if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { + if (ioctl(fd, JSIOCGBUTTONS, &buttons) < 0) { perror("jscal: error getting buttons"); exit(1); } - if (ioctl(fd, JSIOCGCORR, &corr)) { + if (ioctl(fd, JSIOCGCORR, &corr) < 0) { perror("jscal: error getting correction"); exit(1); } @@ -218,7 +218,7 @@ corr[i].prec = 0; } - if (ioctl(fd, JSIOCSCORR, &corr)) { + if (ioctl(fd, JSIOCSCORR, &corr) < 0) { perror("jscal: error setting correction"); exit(1); } @@ -324,7 +324,7 @@ putchar('\n'); - if (ioctl(fd, JSIOCSCORR, &corr)) { + if (ioctl(fd, JSIOCSCORR, &corr) < 0) { perror("jscal: error setting correction"); exit(1); } @@ -342,19 +342,19 @@ { int i; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } - if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { + if (ioctl(fd, JSIOCGBUTTONS, &buttons) < 0) { perror("jscal: error getting buttons"); exit(1); } - if (ioctl(fd, JSIOCGAXMAP, &axmap)) { + if (ioctl(fd, JSIOCGAXMAP, &axmap) < 0) { perror("jscal: error getting axis map"); exit(1); } - if (ioctl(fd, JSIOCGBTNMAP, &buttonmap)) { + if (ioctl(fd, JSIOCGBTNMAP, &buttonmap) < 0) { buttons=0; } @@ -376,7 +376,7 @@ void get_axmap2(void) { - if (ioctl(fd, JSIOCGAXMAP, &axmap2)) { + if (ioctl(fd, JSIOCGAXMAP, &axmap2) < 0) { perror("jscal: error getting axis map"); exit(1); } @@ -400,7 +400,7 @@ ax[i]=axmes[(axmap[i])]; } //Read again current callibration settings - if (ioctl(fd, JSIOCGCORR, &corr)) { + if (ioctl(fd, JSIOCGCORR, &corr) < 0) { perror("jscal: error getting correction"); exit(1); } @@ -408,7 +408,7 @@ for (i = 0; i < axes; i++) { corr_tmp[i]=corr[(ax[i])]; } - if (ioctl(fd, JSIOCSCORR, &corr_tmp)) { + if (ioctl(fd, JSIOCSCORR, &corr_tmp) < 0) { perror("jscal: error setting correction"); exit(1); } @@ -419,15 +419,15 @@ { int i,j; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } - if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { + if (ioctl(fd, JSIOCGBUTTONS, &buttons) < 0) { perror("jscal: error getting buttons"); exit(1); } - if (ioctl(fd, JSIOCGCORR, &corr)) { + if (ioctl(fd, JSIOCGCORR, &corr) < 0) { perror("jscal: error getting correction"); exit(1); } @@ -451,11 +451,11 @@ int axis_mapping = 0; int btn_mapping = 0; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } - if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { + if (ioctl(fd, JSIOCGBUTTONS, &buttons) < 0) { perror("jscal: error getting buttons"); exit(1); } @@ -536,7 +536,7 @@ get_axmap2(); // Apply the new axis map - if (ioctl(fd, JSIOCSAXMAP, &axmap)) { + if (ioctl(fd, JSIOCSAXMAP, &axmap) < 0) { perror("jscal: error setting axis map"); exit(1); } @@ -545,7 +545,7 @@ correct_axes(); if (btns_on_cl!=0){ - if (ioctl(fd, JSIOCSBTNMAP, &buttonmap)) { + if (ioctl(fd, JSIOCSBTNMAP, &buttonmap) < 0) { perror("jscal: error setting button map"); exit(1); } @@ -557,7 +557,7 @@ int i,j; int t = 0; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } @@ -618,7 +618,7 @@ exit(1); } - if (ioctl(fd, JSIOCSCORR, &corr)) { + if (ioctl(fd, JSIOCSCORR, &corr) < 0) { perror("jscal: error setting correction"); exit(1); } @@ -629,12 +629,12 @@ int i; struct js_event ev; - if (ioctl(fd, JSIOCGAXES, &axes)) { + if (ioctl(fd, JSIOCGAXES, &axes) < 0) { perror("jscal: error getting axes"); exit(1); } - if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { + if (ioctl(fd, JSIOCGBUTTONS, &buttons) < 0) { perror("jscal: error getting buttons"); exit(1); } @@ -735,7 +735,7 @@ exit(1); } - if (ioctl(fd, JSIOCGVERSION, &version)) { + if (ioctl(fd, JSIOCGVERSION, &version) < 0) { perror("jscal: error getting version"); exit(1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |