Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Modules/fpectlmodule.c

    r2 r391  
    11/*
    2      --------------------------------------------------------------------- 
    3     /                       Copyright (c) 1996.                           \ 
     2     ---------------------------------------------------------------------
     3    /                       Copyright (c) 1996.                           \
    44   |          The Regents of the University of California.                 |
    55   |                        All rights reserved.                           |
     
    3333   |   reflect those of the United States Government or  the  University   |
    3434   |   of  California,  and shall not be used for advertising or product   |
    35     \  endorsement purposes.                                              / 
    36      --------------------------------------------------------------------- 
     35    \  endorsement purposes.                                              /
     36     ---------------------------------------------------------------------
    3737*/
    3838
    3939/*
    40                   Floating point exception control module.
     40                  Floating point exception control module.
    4141
    4242   This Python module provides bare-bones control over floating point
     
    9696
    9797static PyMethodDef fpectl_methods[] = {
    98     {"turnon_sigfpe",            (PyCFunction) turnon_sigfpe,            METH_VARARGS},
    99     {"turnoff_sigfpe",           (PyCFunction) turnoff_sigfpe,           METH_VARARGS},
     98    {"turnon_sigfpe",            (PyCFunction) turnon_sigfpe,            METH_VARARGS},
     99    {"turnoff_sigfpe",           (PyCFunction) turnoff_sigfpe,           METH_VARARGS},
    100100    {0,0}
    101101};
     
    122122     * else can explain handle_sigfpes to me....
    123123     * cc -c -I/usr/local/python/include fpectlmodule.c
    124      * ld -shared -o fpectlmodule.so fpectlmodule.o -lfpe 
     124     * ld -shared -o fpectlmodule.so fpectlmodule.o -lfpe
    125125     */
    126126#include <sigfpe.h>
     
    128128    typedef void abort_routine (unsigned long);
    129129    handle_sigfpes(_OFF, 0,
    130                 (user_routine *)0,
    131                 _TURN_OFF_HANDLER_ON_ERROR,
    132                 NULL);
     130                (user_routine *)0,
     131                _TURN_OFF_HANDLER_ON_ERROR,
     132                NULL);
    133133    handle_sigfpes(_ON, _EN_OVERFL | _EN_DIVZERO | _EN_INVALID,
    134                 (user_routine *)0,
    135                 _ABORT_ON_ERROR,
    136                 NULL);
     134                (user_routine *)0,
     135                _ABORT_ON_ERROR,
     136                NULL);
    137137    PyOS_setsig(SIGFPE, handler);
    138138
     
    195195/*-- DEC ALPHA VMS --------------------------------------------------------*/
    196196#elif defined(__ALPHA) && defined(__VMS)
    197         IEEE clrmsk;
    198         IEEE setmsk;
    199         clrmsk.ieee$q_flags =
    200                 IEEE$M_TRAP_ENABLE_UNF |  IEEE$M_TRAP_ENABLE_INE |
    201                 IEEE$M_MAP_UMZ;
    202         setmsk.ieee$q_flags =
    203                 IEEE$M_TRAP_ENABLE_INV | IEEE$M_TRAP_ENABLE_DZE |
    204                 IEEE$M_TRAP_ENABLE_OVF;
    205         sys$ieee_set_fp_control(&clrmsk, &setmsk, 0);
    206         PyOS_setsig(SIGFPE, handler);
     197        IEEE clrmsk;
     198        IEEE setmsk;
     199        clrmsk.ieee$q_flags =
     200                IEEE$M_TRAP_ENABLE_UNF |  IEEE$M_TRAP_ENABLE_INE |
     201                IEEE$M_MAP_UMZ;
     202        setmsk.ieee$q_flags =
     203                IEEE$M_TRAP_ENABLE_INV | IEEE$M_TRAP_ENABLE_DZE |
     204                IEEE$M_TRAP_ENABLE_OVF;
     205        sys$ieee_set_fp_control(&clrmsk, &setmsk, 0);
     206        PyOS_setsig(SIGFPE, handler);
    207207
    208208/*-- HP IA64 VMS --------------------------------------------------------*/
     
    263263    fpsetmask(0);
    264264#elif defined(__VMS)
    265         IEEE clrmsk;
    266         clrmsk.ieee$q_flags =
    267                 IEEE$M_TRAP_ENABLE_UNF |  IEEE$M_TRAP_ENABLE_INE |
    268                 IEEE$M_MAP_UMZ | IEEE$M_TRAP_ENABLE_INV |
    269                 IEEE$M_TRAP_ENABLE_DZE | IEEE$M_TRAP_ENABLE_OVF |
    270                 IEEE$M_INHERIT;
    271         sys$ieee_set_fp_control(&clrmsk, 0, 0);
     265        IEEE clrmsk;
     266        clrmsk.ieee$q_flags =
     267                IEEE$M_TRAP_ENABLE_UNF |  IEEE$M_TRAP_ENABLE_INE |
     268                IEEE$M_MAP_UMZ | IEEE$M_TRAP_ENABLE_INV |
     269                IEEE$M_TRAP_ENABLE_DZE | IEEE$M_TRAP_ENABLE_OVF |
     270                IEEE$M_INHERIT;
     271        sys$ieee_set_fp_control(&clrmsk, 0, 0);
    272272#else
    273273    fputs("Operation not implemented\n", stderr);
     
    292292    m = Py_InitModule("fpectl", fpectl_methods);
    293293    if (m == NULL)
    294         return;
     294        return;
    295295    d = PyModule_GetDict(m);
    296296    fpe_error = PyErr_NewException("fpectl.error", NULL, NULL);
    297297    if (fpe_error != NULL)
    298         PyDict_SetItemString(d, "error", fpe_error);
     298        PyDict_SetItemString(d, "error", fpe_error);
    299299}
    300300
Note: See TracChangeset for help on using the changeset viewer.