Changeset 4142 in vbox
- Timestamp:
- Aug 14, 2007 8:33:05 AM (17 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/pdmifs.h
r4071 r4142 1120 1120 */ 1121 1121 DECLR3CALLBACKMEMBER(int, pfnWrite,(PPDMICHAR pInterface, const void *pvBuf, size_t cbWrite)); 1122 1123 /** 1124 * Set device parameters. 1125 * 1126 * @returns VBox status code. 1127 * @param pInterface Pointer to the interface structure containing the called function pointer. 1128 * @param speed Speed of the serial connection. 1129 * @param parity Enable parity 1130 * @param data_bits Number of data bits 1131 * @param stop_bits Number of stop bits 1132 * @thread Any thread. 1133 */ 1134 DECLR3CALLBACKMEMBER(int, pfnSetParameters,(PPDMICHAR pInterface, int speed, int parity, int data_bits, int stop_bits)); 1135 1122 1136 } PDMICHAR; 1123 1137 -
trunk/src/VBox/Devices/Serial/DevSerial.cpp
r4071 r4142 175 175 __END_DECLS 176 176 177 177 #ifdef IN_RING3 178 178 static void serial_update_irq(SerialState *s) 179 179 { … … 223 223 speed = 115200 / s->divider; 224 224 Log(("speed=%d parity=%c data=%d stop=%d\n", speed, parity, data_bits, stop_bits)); 225 } 225 s->pDrvChar->pfnSetParameters(s->pDrvChar, speed, parity, data_bits, stop_bits); 226 } 227 #endif 226 228 227 229 static int serial_ioport_write(void *opaque, uint32_t addr, uint32_t val) … … 232 234 addr &= 7; 233 235 LogFlow(("serial: write addr=0x%02x val=0x%02x\n", addr, val)); 236 237 #ifndef IN_RING3 238 NOREF(ch); 239 NOREF(s); 240 return VINF_IOM_HC_IOPORT_WRITE; 241 #else 234 242 switch(addr) { 235 243 default: … … 239 247 serial_update_parameters(s); 240 248 } else { 241 #ifndef IN_RING3242 NOREF(ch);243 return VINF_IOM_HC_IOPORT_WRITE;244 #else245 249 s->thr_ipending = 0; 246 250 s->lsr &= ~UART_LSR_THRE; … … 257 261 s->lsr |= UART_LSR_TEMT; 258 262 serial_update_irq(s); 259 #endif260 263 } 261 264 break; … … 297 300 } 298 301 return VINF_SUCCESS; 302 #endif 299 303 } 300 304 … … 335 339 break; 336 340 case 2: 341 #ifndef IN_RING3 342 *pRC = VINF_IOM_HC_IOPORT_READ; 343 #else 337 344 ret = s->iir; 338 345 /* reset THR pending bit */ … … 340 347 s->thr_ipending = 0; 341 348 serial_update_irq(s); 349 #endif 342 350 break; 343 351 case 3: -
trunk/src/VBox/Devices/Serial/DrvChar.cpp
r4071 r4142 124 124 } 125 125 RTSemEventSignal(pData->SendSem); 126 return VINF_SUCCESS; 127 } 128 129 /** @copydoc PDMICHAR::pfnSetParameters */ 130 static DECLCALLBACK(int) drvCharSetParameters(PPDMICHAR pInterface, int speed, int parity, int data_bits, int stop_bits) 131 { 132 PDRVCHAR pData = PDMICHAR_2_DRVCHAR(pInterface); 133 134 LogFlow(("%s: speed=%d parity=%c data_bits=%d stop_bits=%d\n", __FUNCTION__, speed, parity, data_bits, stop_bits)); 126 135 return VINF_SUCCESS; 127 136 } … … 186 195 } 187 196 188 189 197 /* -=-=-=-=- receive thread -=-=-=-=- */ 190 198 … … 287 295 /* IChar. */ 288 296 pData->IChar.pfnWrite = drvCharWrite; 289 297 pData->IChar.pfnSetParameters = drvCharSetParameters; 290 298 291 299 /*
Note:
See TracChangeset
for help on using the changeset viewer.