25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: dev_ns16550.c,v 1.32 2005/02/19 11:51:33 debug Exp $ |
* $Id: dev_ns16550.c,v 1.33 2005/06/26 11:43:48 debug Exp $ |
29 |
* |
* |
30 |
* NS16550 serial controller. |
* NS16550 serial controller. |
31 |
* |
* |
298 |
char *name) |
char *name) |
299 |
{ |
{ |
300 |
struct ns_data *d; |
struct ns_data *d; |
301 |
|
size_t nlen; |
302 |
char *name2; |
char *name2; |
303 |
|
|
304 |
d = malloc(sizeof(struct ns_data)); |
d = malloc(sizeof(struct ns_data)); |
317 |
d->stopbits = "1"; |
d->stopbits = "1"; |
318 |
d->console_handle = console_start_slave(machine, name); |
d->console_handle = console_start_slave(machine, name); |
319 |
|
|
320 |
name2 = malloc(strlen(name) + 20); |
nlen = strlen(name) + 20; |
321 |
|
name2 = malloc(nlen); |
322 |
if (name2 == NULL) { |
if (name2 == NULL) { |
323 |
fprintf(stderr, "out of memory in dev_ns16550_init()\n"); |
fprintf(stderr, "out of memory in dev_ns16550_init()\n"); |
324 |
exit(1); |
exit(1); |
325 |
} |
} |
326 |
if (name != NULL && name[0]) |
if (name != NULL && name[0]) |
327 |
sprintf(name2, "ns16550 [%s]", name); |
snprintf(name2, nlen, "ns16550 [%s]", name); |
328 |
else |
else |
329 |
sprintf(name2, "ns16550"); |
snprintf(name2, nlen, "ns16550"); |
330 |
|
|
331 |
memory_device_register(mem, name2, baseaddr, |
memory_device_register(mem, name2, baseaddr, |
332 |
DEV_NS16550_LENGTH * addrmult, dev_ns16550_access, d, |
DEV_NS16550_LENGTH * addrmult, dev_ns16550_access, d, |