Changeset c2417bc in mainline for kernel/genarch/src/drivers/dsrln/dsrlnin.c
- Timestamp:
- 2009-04-21T12:46:26Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f2d2c7ba
- Parents:
- 44b7783
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/drivers/dsrln/dsrlnin.c
r44b7783 rc2417bc 41 41 #include <ddi/device.h> 42 42 43 static indev_operations_t kbrdin_ops = {44 .poll = NULL45 };46 47 43 static irq_ownership_t dsrlnin_claim(irq_t *irq) 48 44 { … … 55 51 dsrlnin_t *dev = instance->dsrlnin; 56 52 57 indev_push_character( &instance->kbrdin, pio_read_8(&dev->data));53 indev_push_character(instance->srlnin, pio_read_8(&dev->data)); 58 54 } 59 55 60 indev_t *dsrlnin_init(dsrlnin_t *dev, inr_t inr)56 dsrlnin_instance_t *dsrlnin_init(dsrlnin_t *dev, inr_t inr) 61 57 { 62 58 dsrlnin_instance_t *instance 63 59 = malloc(sizeof(dsrlnin_instance_t), FRAME_ATOMIC); 64 if (!instance) 65 return NULL; 60 if (instance) { 61 instance->dsrlnin = dev; 62 instance->srlnin = NULL; 63 64 irq_initialize(&instance->irq); 65 instance->irq.devno = device_assign_devno(); 66 instance->irq.inr = inr; 67 instance->irq.claim = dsrlnin_claim; 68 instance->irq.handler = dsrlnin_irq_handler; 69 instance->irq.instance = instance; 70 } 66 71 67 indev_initialize("dsrlnin", &instance->kbrdin, &kbrdin_ops); 72 return instance; 73 } 74 75 void dsrlnin_wire(dsrlnin_instance_t *instance, indev_t *srlnin) 76 { 77 ASSERT(instance); 78 ASSERT(srlnin); 68 79 69 instance->dsrlnin = dev; 70 71 irq_initialize(&instance->irq); 72 instance->irq.devno = device_assign_devno(); 73 instance->irq.inr = inr; 74 instance->irq.claim = dsrlnin_claim; 75 instance->irq.handler = dsrlnin_irq_handler; 76 instance->irq.instance = instance; 80 instance->srlnin = srlnin; 77 81 irq_register(&instance->irq); 78 79 return &instance->kbrdin;80 82 } 81 83
Note:
See TracChangeset
for help on using the changeset viewer.