Changeset 518 for GPL/trunk/lib32/ossidc.cpp
- Timestamp:
- Jul 20, 2010, 5:46:55 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk/lib32/ossidc.cpp
r501 r518 24 24 25 25 #define INCL_NOPMAPI 26 #define INCL_DOSERRORS 26 #define INCL_DOSERRORS // for ERROR_INVALID_FUNCTION 27 27 #include <os2.h> 28 28 #include <ossdefos2.h> … … 45 45 BOOL CallOSS16(ULONG cmd, ULONG param1, ULONG param2) 46 46 { 47 BOOLrc;48 49 50 51 52 53 54 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; 55 55 } 56 56 //****************************************************************************** 57 57 exitcall_t fnCardExitCall[OSS32_MAX_AUDIOCARDS] = {0}; 58 58 extern "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 */ 63 61 64 62 typedef struct cardcalls_t { 65 66 initcall_tt *cinitcall;67 exitcall_tt *cexitcall;63 int card_id; 64 initcall_t *cinitcall; 65 exitcall_t *cexitcall; 68 66 }cardcalls_t; 69 67 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) }*/ 68 cardcalls_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) }, 94 95 }; 95 #endif 96 97 int nrCardsDetected = 0; 98 int fStrategyInit = FALSE; 96 97 int nrCardsDetected = 0; 98 int fStrategyInit = FALSE; 99 99 void pcm_info(void); 100 100 void FillCaps(ULONG deviceid); 101 101 }; 102 102 //****************************************************************************** 103 // This routine should be discarded after init time 103 104 OSSRET OSS32_Initialize(void) 104 105 { 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; 294 169 } 295 170 //****************************************************************************** … … 298 173 OSSRET OSS32_Shutdown() 299 174 { 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; 317 204 } 318 205 //****************************************************************************** … … 320 207 int OSS32_ProcessIRQ() 321 208 { 322 209 return CallOSS16(IDC16_PROCESS, 0, 0); 323 210 } 324 211 325 212 int OSS32_ProcessMIDIIRQ(int bytes) 326 213 { 327 214 return CallOSS16(IDC16_MIDI_IRQ, bytes, 0); 328 215 } 329 216 330 217 int OSS32_CloseUNI16(void) 331 218 { 332 219 return CallOSS16(IDC16_CLOSE_UNI16, 0, 0); 333 220 } 334 221 //****************************************************************************** … … 336 223 int MyDevBlock(ULONG id, ULONG tout, char flag) 337 224 { 338 225 return DevBlock(id,tout, flag); 339 226 } 340 227 341 228 int OSS32_DebugString(char *buffer, ULONG size) 342 229 { 343 344 345 } 230 rprintf(("U16: %s", buffer)); 231 return size; 232 }
Note:
See TracChangeset
for help on using the changeset viewer.