Ignore:
Timestamp:
Jul 20, 2010, 5:46:55 PM (15 years ago)
Author:
David Azarewicz
Message:

Some of my updates from the 2.1.x branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/lib32/ossidc.cpp

    r501 r518  
    2424
    2525#define INCL_NOPMAPI
    26 #define INCL_DOSERRORS          // for ERROR_INVALID_FUNCTION
     26#define INCL_DOSERRORS                  // for ERROR_INVALID_FUNCTION
    2727#include <os2.h>
    2828#include <ossdefos2.h>
     
    4545BOOL CallOSS16(ULONG cmd, ULONG param1, ULONG param2)
    4646{
    47     BOOL        rc;
    48 
    49     if(idc16_PddHandler == 0) {
    50             return FALSE;
    51     }
    52 
    53     rc = CallPDD16(idc16_PddHandler, cmd, param1, param2);
    54     return rc;
     47        BOOL            rc;
     48
     49        if(idc16_PddHandler == 0) {
     50                return FALSE;
     51        }
     52
     53        rc = CallPDD16(idc16_PddHandler, cmd, param1, param2);
     54        return rc;
    5555}
    5656//******************************************************************************
    5757exitcall_t fnCardExitCall[OSS32_MAX_AUDIOCARDS] = {0};
    5858extern "C" {
    59 #if 0
    60 
    61     typedef int  (initcall_tt)(void);
    62     typedef void (exitcall_tt)(void);
     59
     60/* this table should be discarded after init time */
    6361
    6462typedef struct cardcalls_t {
    65     int card_id;
    66     initcall_tt *cinitcall;
    67     exitcall_tt *cexitcall;
     63        int card_id;
     64        initcall_t *cinitcall;
     65        exitcall_t *cexitcall;
    6866}cardcalls_t;
    6967
    70 cardcalls_t cardcalls[1] = {
    71     //    { CARD_SBLIVE,   name_module(alsa_card_emu10k1, _init, _exit) },
    72     { CARD_SBLIVE,   __initcall_alsa_card_emu10k1_init, __exitcall_alsa_card_emu10k1_exit },
    73 /*
    74     { CARD_CMEDIA,   name_module(alsa_card_cmipci, _init, _exit) },
    75     { CARD_ALS4000,  name_module(alsa_card_als4000, _init, _exit) },
    76     { CARD_CS4281,   name_module(alsa_card_cs4281, _init, _exit) },
    77     { CARD_ICH,      name_module(alsa_card_intel8x0, _init, _exit) },
    78     { CARD_CS46XX,   name_module(alsa_card_cs46xx, _init, _exit) },
    79     { CARD_VIA82XX,  name_module(alsa_card_via82xx, _init, _exit) },
    80     { CARD_ESS1938,  name_module(alsa_card_es1938, _init, _exit) },
    81 //    { CARD_VORTEX,   name_module(alsa_card_vortex, _init, _exit) },
    82     { CARD_ENSONIQ,  name_module(alsa_card_ens137x, _init, _exit) },
    83     { CARD_YAMAHA,   name_module(alsa_card_ymfpci, _init, _exit) },
    84     { CARD_MAESTRO,  name_module(alsa_card_es1968, _init, _exit) },
    85     { CARD_MAESTRO3, name_module(alsa_card_m3, _init, _exit) },
    86     { CARD_ALI5451,  name_module(alsa_card_ali, _init, _exit) },
    87     { CARD_TRIDENT,  name_module(alsa_card_trident, _init, _exit) },
    88     { CARD_NEOMAGIC, name_module(alsa_card_nm256, _init, _exit) },
    89     { CARD_ATIIXP,   name_module(alsa_card_atiixp, _init, _exit) },
    90     { CARD_FM801,    name_module(alsa_card_fm801, _init, _exit) },
    91     { CARD_AUDIGYLS, name_module(alsa_card_ca0106, _init, _exit) },
    92     { CARD_BT87X,    name_module(alsa_card_bt87x, _init, _exit) },
    93     { CARD_AZX,      name_module(alsa_card_azx, _init, _exit) }*/
     68cardcalls_t cardcalls[CARDS_NUM] = {
     69        { CARD_ICH,              &name_module_init(alsa_card_intel8x0_init),    &name_module_exit(alsa_card_intel8x0_exit)        },
     70        { CARD_VIA82XX,  &name_module_init(alsa_card_via82xx_init),             &name_module_exit(alsa_card_via82xx_exit)         },
     71        { CARD_SBLIVE,   &name_module_init(alsa_card_emu10k1_init),             &name_module_exit(alsa_card_emu10k1_exit)         },
     72        { CARD_CMEDIA,   &name_module_init(alsa_card_cmipci_init),              &name_module_exit(alsa_card_cmipci_exit)          },
     73        { CARD_ALS4000,  &name_module_init(alsa_card_als4000_init),             &name_module_exit(alsa_card_als4000_exit)         },
     74        { CARD_CS4281,   &name_module_init(alsa_card_cs4281_init),              &name_module_exit(alsa_card_cs4281_exit)          },
     75        { CARD_CS46XX,   &name_module_init(alsa_card_cs46xx_init),              &name_module_exit(alsa_card_cs46xx_exit)          },
     76        { CARD_CS5535,   &name_module_init(alsa_card_cs5535audio_init), &name_module_exit(alsa_card_cs5535audio_exit) },
     77        { CARD_ESS1938,  &name_module_init(alsa_card_es1938_init),              &name_module_exit(alsa_card_es1938_exit)          },
     78        { CARD_ENSONIQ,  &name_module_init(alsa_card_ens137x_init),             &name_module_exit(alsa_card_ens137x_exit)         },
     79        { CARD_YAMAHA,   &name_module_init(alsa_card_ymfpci_init),              &name_module_exit(alsa_card_ymfpci_exit)          },
     80        { CARD_MAESTRO,  &name_module_init(alsa_card_es1968_init),              &name_module_exit(alsa_card_es1968_exit)          },
     81        { CARD_MAESTRO3, &name_module_init(alsa_card_m3_init),                  &name_module_exit(alsa_card_m3_exit)              },
     82        { CARD_ALI5451,  &name_module_init(alsa_card_ali_init),                 &name_module_exit(alsa_card_ali_exit)             },
     83        { CARD_TRIDENT,  &name_module_init(alsa_card_trident_init),             &name_module_exit(alsa_card_trident_exit)         },
     84#ifdef VORTEX
     85        { CARD_VORTEX,   &name_module_init(alsa_card_vortex_init),              &name_module_exit(alsa_card_vortex_exit)          },
     86#else
     87        { CARD_VORTEX,   NULL,          NULL },
     88#endif
     89        { CARD_NEOMAGIC, &name_module_init(alsa_card_nm256_init),               &name_module_exit(alsa_card_nm256_exit)           },
     90        { CARD_FM801,    &name_module_init(alsa_card_fm801_init),               &name_module_exit(alsa_card_fm801_exit)           },
     91        { CARD_ATIIXP,   &name_module_init(alsa_card_atiixp_init),              &name_module_exit(alsa_card_atiixp_exit)          },
     92        { CARD_AUDIGYLS, &name_module_init(alsa_card_ca0106_init),              &name_module_exit(alsa_card_ca0106_exit)          },
     93        { CARD_AZX,              &name_module_init(alsa_card_azx_init),                 &name_module_exit(alsa_card_azx_exit)             },
     94        { CARD_BT87X,    &name_module_init(alsa_card_bt87x_init),               &name_module_exit(alsa_card_bt87x_exit)           },
    9495};
    95 #endif
    96 
    97 int        nrCardsDetected = 0;
    98 int        fStrategyInit = FALSE;
     96
     97int        nrCardsDetected = 0;
     98int        fStrategyInit = FALSE;
    9999void pcm_info(void);
    100100void FillCaps(ULONG deviceid);
    101101};
    102102//******************************************************************************
     103// This routine should be discarded after init time
    103104OSSRET OSS32_Initialize(void)
    104105{
    105     fStrategyInit = TRUE;
    106 
    107     if(DevSetTimer(TimerHandler16) != 0) {
    108         dprintf(("DevSetTimer failed!!"));
    109         DebugInt3();
    110         return OSSERR_INIT_FAILED;
    111     }
    112     rprintf(("\nUniaud version %s\n",UNIAUD_VERSION));
    113     dprintf(("OSS32_Initialize. Start address: %X", OffsetBeginCS32));
    114         //DebugInt3();
    115 
    116     if(call_module_init(alsa_sound_init) != 0)       return OSSERR_INIT_FAILED;
    117     dprintf(("OSS32_Initialize1. Start address: %X", OffsetBeginCS32));
    118     if(call_module_init(alsa_pcm_init) != 0)         return OSSERR_INIT_FAILED;
    119     if(call_module_init(alsa_hwdep_init) != 0)       return OSSERR_INIT_FAILED;
    120     if(call_module_init(alsa_timer_init) != 0)       return OSSERR_INIT_FAILED;
    121 
    122     if(call_module_init(alsa_rawmidi_init) != 0)     return OSSERR_INIT_FAILED;
    123     if(call_module_init(alsa_seq_init) != 0)         return OSSERR_INIT_FAILED;
    124     if(call_module_init(alsa_opl3_init) != 0)        return OSSERR_INIT_FAILED;
    125     if(call_module_init(alsa_opl3_seq_init) != 0)    return OSSERR_INIT_FAILED;
    126 
    127     if(call_module_init(alsa_mpu401_uart_init) != 0) return OSSERR_INIT_FAILED;
    128 
    129     /* Init functions for HDA audio */
    130     call_module_init(patch_analog_init);
    131     call_module_init(patch_atihdmi_init);
    132     call_module_init(patch_cmedia_init);
    133     call_module_init(patch_conexant_init);
    134     call_module_init(patch_realtek_init);
    135     call_module_init(patch_sigmatel_init);
    136     call_module_init(patch_via_init);
    137     dprintf(("OSS32_Initialize: ForceCard: %d",ForceCard));
    138 #if 0
    139     int i;
    140 
    141     if (ForceCard != CARD_NONE)
    142     {
    143         if (cardcalls[ForceCard].cinitcall() == 0)
    144             fnCardExitCall[nrCardsDetected] = cardcalls[ForceCard].cexitcall;
    145         for (i=0; i < CARDS_NUM; i++)
    146         {
    147             if (i==ForceCard) continue;
    148             if (cardcalls[i].cinitcall() == 0)
    149                 fnCardExitCall[nrCardsDetected] = cardcalls[i].cexitcall;
    150             if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS)
    151                 break;
    152         }
    153     } else
    154     {
    155         for (i=0; i < CARDS_NUM; i++)
    156         {
    157             dprintf(("calling: %X at %X", i, cardcalls[i].cinitcall));
    158             if (cardcalls[i].cinitcall() == 0)
    159                 fnCardExitCall[nrCardsDetected] = cardcalls[i].cexitcall;
    160             if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS)
    161                 break;
    162         }
    163     }
    164 #else
    165     //Check for SoundBlaster Live!
    166     if((ForceCard == CARD_NONE || ForceCard == CARD_ICH) &&
    167        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_intel8x0_init) == 0)
    168     {
    169         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_intel8x0_exit);
    170     }
    171     if((ForceCard == CARD_NONE || ForceCard == CARD_VIA82XX) &&
    172        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_via82xx_init) == 0)
    173     {
    174         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_via82xx_exit);
    175     }
    176 
    177 
    178     if((ForceCard == CARD_NONE || ForceCard == CARD_SBLIVE) &&
    179        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_emu10k1_init) == 0)
    180     {
    181         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_emu10k1_exit);
    182     }
    183 
    184     if((ForceCard == CARD_NONE || ForceCard == CARD_CMEDIA) &&
    185        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cmipci_init) == 0)
    186     {
    187         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cmipci_exit);
    188     }
    189     if((ForceCard == CARD_NONE || ForceCard == CARD_ALS4000) &&
    190        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_als4000_init) == 0)
    191     {
    192         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_als4000_exit);
    193     }
    194     if((ForceCard == CARD_NONE || ForceCard == CARD_CS4281) &&
    195        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs4281_init) == 0)
    196     {
    197         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs4281_exit);
    198     }
    199     if((ForceCard == CARD_NONE || ForceCard == CARD_CS46XX) &&
    200        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs46xx_init) == 0)
    201     {
    202         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs46xx_exit);
    203     }
    204     if((ForceCard == CARD_NONE || ForceCard == CARD_CS5535) &&
    205        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs5535audio_init) == 0)
    206     {
    207         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs5535audio_exit);
    208     }
    209     if((ForceCard == CARD_NONE || ForceCard == CARD_ESS1938) &&
    210        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_es1938_init) == 0)
    211     {
    212         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_es1938_exit);
    213     }
    214     if((ForceCard == CARD_NONE || ForceCard == CARD_ENSONIQ) &&
    215        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ens137x_init) == 0)
    216     {
    217         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ens137x_exit);
    218     }
    219     if((ForceCard == CARD_NONE || ForceCard == CARD_YAMAHA) &&
    220        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ymfpci_init) == 0)
    221     {
    222         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ymfpci_exit);
    223     }
    224     if((ForceCard == CARD_NONE || ForceCard == CARD_MAESTRO) &&
    225        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_es1968_init) == 0)
    226     {
    227         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_es1968_exit);
    228     }
    229     if((ForceCard == CARD_NONE || ForceCard == CARD_MAESTRO3) &&
    230        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_m3_init) == 0)
    231     {
    232         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_m3_exit);
    233     }
    234     if((ForceCard == CARD_NONE || ForceCard == CARD_ALI5451) &&
    235        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ali_init) == 0)
    236     {
    237         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ali_exit);
    238     }
    239     if((ForceCard == CARD_NONE || ForceCard == CARD_TRIDENT) &&
    240        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_trident_init) == 0)
    241     {
    242         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_trident_exit);
    243     }
    244 #ifdef VORTEX
    245     if((ForceCard == CARD_NONE || ForceCard == CARD_VORTEX) &&
    246        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_vortex_init) == 0)
    247     {
    248         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_vortex_exit);
    249    }
    250 #endif
    251     if((ForceCard == CARD_NONE || ForceCard == CARD_NEOMAGIC) &&
    252        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_nm256_init) == 0)
    253     {
    254         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_nm256_exit);
    255     }
    256     if((ForceCard == CARD_NONE || ForceCard == CARD_FM801) &&
    257        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_fm801_init) == 0)
    258     {
    259         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_fm801_exit);
    260     }
    261     if((ForceCard == CARD_NONE || ForceCard == CARD_ATIIXP) &&
    262        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_atiixp_init) == 0)
    263     {
    264         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_atiixp_exit);
    265     }
    266     if((ForceCard == CARD_NONE || ForceCard == CARD_AUDIGYLS) &&
    267        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ca0106_init) == 0)
    268     {
    269         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ca0106_exit);
    270     }
    271     if((ForceCard == CARD_NONE || ForceCard == CARD_AZX) &&
    272        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_azx_init) == 0)
    273     {
    274         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_azx_exit);
    275     }
    276     if((ForceCard == CARD_NONE || ForceCard == CARD_BT87X) &&
    277        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_bt87x_init) == 0)
    278     {
    279         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_bt87x_exit);
    280     }
    281 #endif
    282     fStrategyInit = FALSE;
    283 
    284     if(nrCardsDetected != 0) {
    285         pcm_info();
    286         for(int i=0;i<nrCardsDetected;i++) {
    287             FillCaps(i);
    288         }
    289         dprintf(("OSS32_Initialize: SUCCESS. Cards=%d", nrCardsDetected));
    290         return OSSERR_SUCCESS;
    291     }
    292     dprintf(("OSS32_Initialize. FAILED"));
    293     return OSSERR_INIT_FAILED;
     106        short sI, iTmp;
     107
     108        fStrategyInit = TRUE;
     109
     110        if(DevSetTimer(TimerHandler16) != 0) {
     111                rprintf(("DevSetTimer failed!!"));
     112                DebugInt3();
     113                return OSSERR_INIT_FAILED;
     114        }
     115        rprintf(("\nUniaud version %s\n",UNIAUD_VERSION));
     116        dprintf(("OSS32_Initialize. Start address: %X", OffsetBeginCS32));
     117
     118        if(call_module_init(alsa_sound_init) != 0)               return OSSERR_INIT_FAILED;
     119        dprintf(("OSS32_Initialize1. Start address: %X", OffsetBeginCS32));
     120        if(call_module_init(alsa_pcm_init) != 0)                 return OSSERR_INIT_FAILED;
     121        if(call_module_init(alsa_hwdep_init) != 0)               return OSSERR_INIT_FAILED;
     122        if(call_module_init(alsa_timer_init) != 0)               return OSSERR_INIT_FAILED;
     123
     124        if(call_module_init(alsa_rawmidi_init) != 0)     return OSSERR_INIT_FAILED;
     125        if(call_module_init(alsa_seq_init) != 0)                 return OSSERR_INIT_FAILED;
     126        if(call_module_init(alsa_opl3_init) != 0)                return OSSERR_INIT_FAILED;
     127        if(call_module_init(alsa_opl3_seq_init) != 0)    return OSSERR_INIT_FAILED;
     128
     129        if(call_module_init(alsa_mpu401_uart_init) != 0) return OSSERR_INIT_FAILED;
     130
     131        /* Init functions for HDA audio */
     132        call_module_init(patch_analog_init);
     133        call_module_init(patch_atihdmi_init);
     134        call_module_init(patch_cmedia_init);
     135        call_module_init(patch_conexant_init);
     136        call_module_init(patch_realtek_init);
     137        call_module_init(patch_sigmatel_init);
     138        call_module_init(patch_via_init);
     139
     140        dprintf(("OSS32_Initialize: ForceCard=%d", ForceCard));
     141
     142        for (sI=0; sI<CARDS_NUM; sI++) {
     143                if ((ForceCard != CARD_NONE) && (ForceCard != cardcalls[sI].card_id)) continue;
     144                //dprintf(("calling: %x at %x", cardcalls[sI].card_id, cardcalls[sI].cinitcall));
     145                if (cardcalls[sI].cinitcall == NULL) continue;
     146                if (*cardcalls[sI].cinitcall == NULL) continue;
     147                iTmp = (*cardcalls[sI].cinitcall)();
     148                if (iTmp <= 0) continue;
     149                while (iTmp) {
     150                        fnCardExitCall[nrCardsDetected++] = *cardcalls[sI].cexitcall;
     151                        iTmp--;
     152                        if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS) break;
     153                }
     154                if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS) break;
     155        }
     156
     157        fStrategyInit = FALSE;
     158
     159        if(nrCardsDetected != 0) {
     160                pcm_info();
     161                for(int i=0;i<nrCardsDetected;i++) {
     162                        FillCaps(i);
     163                }
     164                dprintf(("OSS32_Initialize: SUCCESS. Cards=%d", nrCardsDetected));
     165                return OSSERR_SUCCESS;
     166        }
     167        rprintf(("OSS32_Initialize. FAILED"));
     168        return OSSERR_INIT_FAILED;
    294169}
    295170//******************************************************************************
     
    298173OSSRET OSS32_Shutdown()
    299174{
    300     CallOSS16(IDC16_EXIT, 0, 0);
    301 
    302     for(int i=0;i<nrCardsDetected;i++) {
    303         if(fnCardExitCall[i]) fnCardExitCall[i]();
    304     }
    305 
    306     call_module_exit(alsa_mpu401_uart_exit);
    307     call_module_exit(alsa_opl3_seq_exit);
    308     call_module_exit(alsa_opl3_exit);
    309     call_module_exit(alsa_seq_exit);
    310     call_module_exit(alsa_rawmidi_exit);
    311     call_module_exit(alsa_timer_exit);
    312     call_module_exit(alsa_hwdep_exit);
    313     call_module_exit(alsa_pcm_exit);
    314     call_module_exit(alsa_sound_exit);
    315 
    316     return OSSERR_SUCCESS;
     175        dprintf(("OSS32_Shutdown 1"));
     176        CallOSS16(IDC16_EXIT, 0, 0);
     177        dprintf(("OSS32_Shutdown 2"));
     178
     179        for(int i=0;i<nrCardsDetected;i++) {
     180                if(fnCardExitCall[i]) fnCardExitCall[i]();
     181        }
     182
     183        dprintf(("OSS32_Shutdown 3"));
     184        call_module_exit(alsa_mpu401_uart_exit);
     185        dprintf(("OSS32_Shutdown 4"));
     186        call_module_exit(alsa_opl3_seq_exit);
     187        dprintf(("OSS32_Shutdown 5"));
     188        call_module_exit(alsa_opl3_exit);
     189        dprintf(("OSS32_Shutdown 6"));
     190        call_module_exit(alsa_seq_exit);
     191        dprintf(("OSS32_Shutdown 7"));
     192        call_module_exit(alsa_rawmidi_exit);
     193        dprintf(("OSS32_Shutdown 8"));
     194        call_module_exit(alsa_timer_exit);
     195        dprintf(("OSS32_Shutdown 9"));
     196        call_module_exit(alsa_hwdep_exit);
     197        dprintf(("OSS32_Shutdown 10"));
     198        call_module_exit(alsa_pcm_exit);
     199        dprintf(("OSS32_Shutdown 11"));
     200        call_module_exit(alsa_sound_exit);
     201        dprintf(("OSS32_Shutdown 12"));
     202
     203        return OSSERR_SUCCESS;
    317204}
    318205//******************************************************************************
     
    320207int OSS32_ProcessIRQ()
    321208{
    322     return CallOSS16(IDC16_PROCESS, 0, 0);
     209        return CallOSS16(IDC16_PROCESS, 0, 0);
    323210}
    324211
    325212int OSS32_ProcessMIDIIRQ(int bytes)
    326213{
    327     return CallOSS16(IDC16_MIDI_IRQ, bytes, 0);
     214        return CallOSS16(IDC16_MIDI_IRQ, bytes, 0);
    328215}
    329216
    330217int OSS32_CloseUNI16(void)
    331218{
    332     return CallOSS16(IDC16_CLOSE_UNI16, 0, 0);
     219        return CallOSS16(IDC16_CLOSE_UNI16, 0, 0);
    333220}
    334221//******************************************************************************
     
    336223int MyDevBlock(ULONG id, ULONG tout, char flag)
    337224{
    338     return DevBlock(id,tout, flag);
     225        return DevBlock(id,tout, flag);
    339226}
    340227
    341228int OSS32_DebugString(char *buffer, ULONG size)
    342229{
    343     rprintf(("U16: %s", buffer));
    344     return size;
    345 }
     230        rprintf(("U16: %s", buffer));
     231        return size;
     232}
Note: See TracChangeset for help on using the changeset viewer.