Changeset a35b458 in mainline for uspace/lib/c/generic/device/hw_res.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/device/hw_res.c
r3061bc1 ra35b458 42 42 { 43 43 sysarg_t count = 0; 44 44 45 45 async_exch_t *exch = async_exchange_begin(sess); 46 46 47 47 errno_t rc = async_req_1_1(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 48 48 HW_RES_GET_RESOURCE_LIST, &count); 49 49 50 50 if (rc != EOK) { 51 51 async_exchange_end(exch); 52 52 return rc; 53 53 } 54 54 55 55 size_t size = count * sizeof(hw_resource_t); 56 56 hw_resource_t *resources = (hw_resource_t *) malloc(size); … … 60 60 return ENOMEM; 61 61 } 62 62 63 63 rc = async_data_read_start(exch, resources, size); 64 64 async_exchange_end(exch); 65 65 66 66 if (rc != EOK) { 67 67 free(resources); 68 68 return rc; 69 69 } 70 70 71 71 hw_resources->resources = resources; 72 72 hw_resources->count = count; 73 73 74 74 return EOK; 75 75 } … … 78 78 { 79 79 async_exch_t *exch = async_exchange_begin(sess); 80 80 81 81 errno_t rc = async_req_2_0(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 82 82 HW_RES_ENABLE_INTERRUPT, irq); 83 83 async_exchange_end(exch); 84 84 85 85 return rc; 86 86 } … … 89 89 { 90 90 async_exch_t *exch = async_exchange_begin(sess); 91 91 92 92 errno_t rc = async_req_2_0(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 93 93 HW_RES_DISABLE_INTERRUPT, irq); 94 94 async_exchange_end(exch); 95 95 96 96 return rc; 97 97 } … … 100 100 { 101 101 async_exch_t *exch = async_exchange_begin(sess); 102 102 103 103 errno_t rc = async_req_2_0(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 104 104 HW_RES_CLEAR_INTERRUPT, irq); 105 105 async_exchange_end(exch); 106 106 107 107 return rc; 108 108 } … … 126 126 { 127 127 async_exch_t *exch = async_exchange_begin(sess); 128 128 129 129 const uint32_t packed = (channel & 0xffff) | (mode << 16); 130 130 const errno_t ret = async_req_4_0(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 131 131 HW_RES_DMA_CHANNEL_SETUP, packed, pa, size); 132 132 133 133 async_exchange_end(exch); 134 134 135 135 return ret; 136 136 } … … 148 148 { 149 149 async_exch_t *exch = async_exchange_begin(sess); 150 150 151 151 sysarg_t remain; 152 152 const errno_t ret = async_req_2_1(exch, DEV_IFACE_ID(HW_RES_DEV_IFACE), 153 153 HW_RES_DMA_CHANNEL_REMAIN, channel, &remain); 154 154 155 155 async_exchange_end(exch); 156 156 157 157 if (ret == EOK) 158 158 *rem = remain; 159 159 160 160 return ret; 161 161 }
Note:
See TracChangeset
for help on using the changeset viewer.