Author: oxygene
Date: 2010-01-26 21:58:40 +0100 (Tue, 26 Jan 2010)
New Revision: 883

Modified:
   trunk/serial.c
Log:
Windows wants UNC names for COM ports >9 (legacy COM ports only work with one 
digit).
As UNC also works for smaller names, just retarget all requests for dev=COMx on 
win32
to \\.\COMx.
Tested with large and small COM port numbers on XP.


Signed-off-by: Patrick Georgi <[email protected]>
Acked-by: Carl-Daniel Hailfinger <[email protected]>


Modified: trunk/serial.c
===================================================================
--- trunk/serial.c      2010-01-25 22:55:33 UTC (rev 882)
+++ trunk/serial.c      2010-01-26 20:58:40 UTC (rev 883)
@@ -105,7 +105,15 @@
 {
 #ifdef _WIN32
        HANDLE fd;
-       fd = CreateFile(dev, GENERIC_READ | GENERIC_WRITE, 0, NULL, 
OPEN_EXISTING, 0, NULL);
+       char* dev2 = dev;
+       if ((strlen(dev) > 3) && (tolower(dev[0])=='c') && 
(tolower(dev[1])=='o') && (tolower(dev[2])=='m')) {
+               dev2 = malloc(strlen(dev)+5);
+               strcpy(dev2, "\\\\.\\");
+               strcpy(dev2+4, dev);
+       }
+       fd = CreateFile(dev2, GENERIC_READ | GENERIC_WRITE, 0, NULL, 
OPEN_EXISTING, 0, NULL);
+       if (dev2 != dev)
+               free(dev2);
        if (fd == INVALID_HANDLE_VALUE) {
                sp_die("Error: cannot open serial port");
        }


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to