Example #1
0
 def build_winerror_to_errno():
     """Build a dictionary mapping windows error numbers to POSIX errno.
     The function returns the dict, and the default value for codes not
     in the dict."""
     # Prior to Visual Studio 8, the MSVCRT dll doesn't export the
     # _dosmaperr() function, which is available only when compiled
     # against the static CRT library.
     from pypy.translator.platform import platform, Windows
     static_platform = Windows()
     if static_platform.name == 'msvc':
         static_platform.cflags = ['/MT']  # static CRT
         static_platform.version = 0       # no manifest
     cfile = udir.join('dosmaperr.c')
     cfile.write(r'''
             #include <errno.h>
             int main()
             {
                 int i;
                 for(i=1; i < 65000; i++) {
                     _dosmaperr(i);
                     if (errno == EINVAL)
                         continue;
                     printf("%d\t%d\n", i, errno);
                 }
                 return 0;
             }''')
     exename = static_platform.compile(
         [cfile], ExternalCompilationInfo(),
         outputfilename = "dosmaperr",
         standalone=True)
     output = os.popen(str(exename))
     errors = dict(map(int, line.split())
                   for line in output)
     return errors, errno.EINVAL
Example #2
0
 def build_winerror_to_errno():
     """Build a dictionary mapping windows error numbers to POSIX errno.
     The function returns the dict, and the default value for codes not
     in the dict."""
     # Prior to Visual Studio 8, the MSVCRT dll doesn't export the
     # _dosmaperr() function, which is available only when compiled
     # against the static CRT library.
     from pypy.translator.platform import platform, Windows
     static_platform = Windows()
     if static_platform.name == 'msvc':
         static_platform.cflags = ['/MT']  # static CRT
         static_platform.version = 0       # no manifest
     cfile = udir.join('dosmaperr.c')
     cfile.write(r'''
             #include <errno.h>
             int main()
             {
                 int i;
                 for(i=1; i < 65000; i++) {
                     _dosmaperr(i);
                     if (errno == EINVAL)
                         continue;
                     printf("%d\t%d\n", i, errno);
                 }
                 return 0;
             }''')
     try:
         exename = static_platform.compile(
             [cfile], ExternalCompilationInfo(),
             outputfilename = "dosmaperr",
             standalone=True)
     except (CompilationError, WindowsError):
         # Fallback for the mingw32 compiler
         errors = {
             2: 2, 3: 2, 4: 24, 5: 13, 6: 9, 7: 12, 8: 12, 9: 12, 10: 7,
             11: 8, 15: 2, 16: 13, 17: 18, 18: 2, 19: 13, 20: 13, 21: 13,
             22: 13, 23: 13, 24: 13, 25: 13, 26: 13, 27: 13, 28: 13,
             29: 13, 30: 13, 31: 13, 32: 13, 33: 13, 34: 13, 35: 13,
             36: 13, 53: 2, 65: 13, 67: 2, 80: 17, 82: 13, 83: 13, 89: 11,
             108: 13, 109: 32, 112: 28, 114: 9, 128: 10, 129: 10, 130: 9,
             132: 13, 145: 41, 158: 13, 161: 2, 164: 11, 167: 13, 183: 17,
             188: 8, 189: 8, 190: 8, 191: 8, 192: 8, 193: 8, 194: 8,
             195: 8, 196: 8, 197: 8, 198: 8, 199: 8, 200: 8, 201: 8,
             202: 8, 206: 2, 215: 11, 1816: 12,
             }
     else:
         output = os.popen(str(exename))
         errors = dict(map(int, line.split())
                       for line in output)
     return errors, errno.EINVAL
Example #3
0
 def build_winerror_to_errno():
     """Build a dictionary mapping windows error numbers to POSIX errno.
     The function returns the dict, and the default value for codes not
     in the dict."""
     # Prior to Visual Studio 8, the MSVCRT dll doesn't export the
     # _dosmaperr() function, which is available only when compiled
     # against the static CRT library.
     from pypy.translator.platform import platform, Windows
     static_platform = Windows()
     if static_platform.name == 'msvc':
         static_platform.cflags = ['/MT']  # static CRT
         static_platform.version = 0  # no manifest
     cfile = udir.join('dosmaperr.c')
     cfile.write(r'''
             #include <errno.h>
             int main()
             {
                 int i;
                 for(i=1; i < 65000; i++) {
                     _dosmaperr(i);
                     if (errno == EINVAL)
                         continue;
                     printf("%d\t%d\n", i, errno);
                 }
                 return 0;
             }''')
     try:
         exename = static_platform.compile([cfile],
                                           ExternalCompilationInfo(),
                                           outputfilename="dosmaperr",
                                           standalone=True)
     except (CompilationError, WindowsError):
         # Fallback for the mingw32 compiler
         errors = {
             2: 2,
             3: 2,
             4: 24,
             5: 13,
             6: 9,
             7: 12,
             8: 12,
             9: 12,
             10: 7,
             11: 8,
             15: 2,
             16: 13,
             17: 18,
             18: 2,
             19: 13,
             20: 13,
             21: 13,
             22: 13,
             23: 13,
             24: 13,
             25: 13,
             26: 13,
             27: 13,
             28: 13,
             29: 13,
             30: 13,
             31: 13,
             32: 13,
             33: 13,
             34: 13,
             35: 13,
             36: 13,
             53: 2,
             65: 13,
             67: 2,
             80: 17,
             82: 13,
             83: 13,
             89: 11,
             108: 13,
             109: 32,
             112: 28,
             114: 9,
             128: 10,
             129: 10,
             130: 9,
             132: 13,
             145: 41,
             158: 13,
             161: 2,
             164: 11,
             167: 13,
             183: 17,
             188: 8,
             189: 8,
             190: 8,
             191: 8,
             192: 8,
             193: 8,
             194: 8,
             195: 8,
             196: 8,
             197: 8,
             198: 8,
             199: 8,
             200: 8,
             201: 8,
             202: 8,
             206: 2,
             215: 11,
             1816: 12,
         }
     else:
         output = os.popen(str(exename))
         errors = dict(map(int, line.split()) for line in output)
     return errors, errno.EINVAL