Changeset 21b6307 in mainline for kernel/genarch/src/drivers/ns16550/ns16550.c
- Timestamp:
- 2012-10-31T18:26:45Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3da166f0
- Parents:
- 6bbe470
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/drivers/ns16550/ns16550.c
r6bbe470 r21b6307 102 102 * 103 103 * @param dev Addrress of the beginning of the device in I/O space. 104 * @param devno Device number.105 104 * @param inr Interrupt number. 106 105 * @param cir Clear interrupt function. 107 106 * @param cir_arg First argument to cir. 107 * @param output Where to store pointer to the output device 108 * or NULL if the caller is not interested in 109 * writing to the serial port. 108 110 * 109 111 * @return Keyboard instance or NULL on failure. 110 112 * 111 113 */ 112 ns16550_instance_t *ns16550_init(ns16550_t *dev, inr_t inr, cir_t cir, void *cir_arg) 114 ns16550_instance_t *ns16550_init(ns16550_t *dev, inr_t inr, cir_t cir, 115 void *cir_arg, outdev_t **output) 113 116 { 114 117 ns16550_instance_t *instance … … 118 121 instance->input = NULL; 119 122 instance->output = NULL; 123 124 if (output) { 125 instance->output = malloc(sizeof(outdev_t), 126 FRAME_ATOMIC); 127 if (!instance->output) { 128 free(instance); 129 return NULL; 130 } 131 132 outdev_initialize("ns16550", instance->output, 133 &ns16550_ops); 134 instance->output->data = instance; 135 *output = instance->output; 136 } 120 137 121 138 irq_initialize(&instance->irq); … … 153 170 } 154 171 155 outdev_t *ns16550_output(ns16550_instance_t *instance)156 {157 ASSERT(instance);158 159 if (instance->output == NULL) {160 instance->output = malloc(sizeof(outdev_t),161 FRAME_ATOMIC);162 if (instance->output) {163 outdev_initialize("ns16550", instance->output,164 &ns16550_ops);165 instance->output->data = instance;166 }167 }168 169 return instance->output;170 }171 172 172 /** @} 173 173 */
Note:
See TracChangeset
for help on using the changeset viewer.