Changeset 47c2327 in rtems for cpukit/libblock
- Timestamp:
- 11/30/09 12:39:51 (14 years ago)
- Branches:
- 4.10, 4.11, 5, master
- Children:
- f9925bc
- Parents:
- 91182bc
- Location:
- cpukit/libblock
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/libblock/include/rtems/bdbuf.h
r91182bc r47c2327 80 80 * @dot 81 81 * digraph state { 82 * size="16,8"; 82 83 * e [label="EMPTY",style="filled",fillcolor="aquamarine"]; 83 84 * f [label="FRESH",style="filled",fillcolor="seagreen"]; … … 160 161 161 162 /** 162 * State of a buffer of the cache. 163 * @brief State of a buffer of the cache. 164 * 165 * The state has several implications. Depending on the state a buffer can be 166 * in the AVL tree, in a list, in use by an entity and a group user or not. 163 167 */ 164 168 typedef enum 165 169 { 166 170 /** 167 * Not in the cache. Not in a list. Not in use. 171 * @brief Empty. 172 * 173 * Not in the AVL tree. Not in a list. Not in use. Not a user of its 174 * group. 168 175 */ 169 176 RTEMS_BDBUF_STATE_EMPTY = 0, 170 177 171 178 /** 172 * In the cache. Not in a list. In use by a get or read request. 179 * @brief Fresh. 180 * 181 * In the AVL tree. Not in a list. In use by a get or read request. A user 182 * of its group. 173 183 */ 174 184 RTEMS_BDBUF_STATE_FRESH, 175 185 176 186 /** 177 * In the cache. In the LRU list. Not in use. 178 */ 179 RTEMS_BDBUF_STATE_CACHED, /**< In the cache and available */ 180 181 /** 182 * In the cache. Not in a list. In use by an upper layer. 187 * @brief Cached. 188 * 189 * In the AVL tree. In the LRU list. Not in use. Not a user of its group. 190 */ 191 RTEMS_BDBUF_STATE_CACHED, 192 193 /** 194 * @brief Accessed by upper layer. 195 * 196 * In the AVL tree. Not in a list. In use by an upper layer. A user of its 197 * group. 183 198 */ 184 199 RTEMS_BDBUF_STATE_ACCESS, 185 200 186 201 /** 187 * In the cache. Not in a list. In use by an upper layer. 202 * @brief Accessed and modified by upper layer. 203 * 204 * In the AVL tree. Not in a list. In use by an upper layer. A user of its 205 * group. 188 206 */ 189 207 RTEMS_BDBUF_STATE_ACCESS_MODIFIED, 190 208 191 209 /** 192 * In the cache. In the modified list. Not in use. 210 * @brief Modified by upper layer. 211 * 212 * In the AVL tree. In the modified list. In use by swapout mechanic. A 213 * user of its group. 193 214 */ 194 215 RTEMS_BDBUF_STATE_MODIFIED, 195 216 196 217 /** 197 * In the cache. In the sync list. Not in use. 218 * @brief Scheduled for synchronization. 219 * 220 * In the AVL tree. In the sync list. In use by swapout mechanic. A user 221 * of its group. 198 222 */ 199 223 RTEMS_BDBUF_STATE_SYNC, 200 224 201 225 /** 202 * In the cache. Not in a list. In use by the block device driver. 226 * @brief In transfer by block device driver. 227 * 228 * In the AVL tree. Not in a list. In use by the block device driver. A 229 * user of its group. 203 230 */ 204 231 RTEMS_BDBUF_STATE_TRANSFER -
cpukit/libblock/include/rtems/blkdev.h
r91182bc r47c2327 183 183 */ 184 184 #define RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES \ 185 .open_entry =rtems_blkdev_generic_open, \186 .close_entry =rtems_blkdev_generic_close, \187 .read_entry =rtems_blkdev_generic_read, \188 .write_entry =rtems_blkdev_generic_write, \189 .control_entry =rtems_blkdev_generic_ioctl185 rtems_blkdev_generic_open, \ 186 rtems_blkdev_generic_close, \ 187 rtems_blkdev_generic_read, \ 188 rtems_blkdev_generic_write, \ 189 rtems_blkdev_generic_ioctl 190 190 191 191 /** -
cpukit/libblock/src/bdbuf.c
r91182bc r47c2327 1832 1832 transfer_count = media_block_end - media_block; 1833 1833 1834 req->bufnum = 0; 1835 1834 1836 bd = rtems_bdbuf_get_buffer_for_access (dev, media_block, bds_per_group); 1835 1836 req->bufnum = 0;1837 1837 1838 1838 req->bufs [0].user = bd; … … 1841 1841 req->bufs [0].buffer = bd->buffer; 1842 1842 1843 if (rtems_bdbuf_tracer) 1844 rtems_bdbuf_show_users ("read", bd); 1845 1843 1846 switch (bd->state) 1844 1847 { … … 1847 1850 return; 1848 1851 case RTEMS_BDBUF_STATE_FRESH: 1852 rtems_bdbuf_set_state (bd, RTEMS_BDBUF_STATE_TRANSFER); 1849 1853 break; 1850 1854 default: … … 1855 1859 while (transfer_index < transfer_count) 1856 1860 { 1857 rtems_bdbuf_set_state (bd, RTEMS_BDBUF_STATE_TRANSFER);1858 1859 if (rtems_bdbuf_tracer)1860 rtems_bdbuf_show_users ("reading", bd);1861 1862 1861 media_block += media_block_count; 1863 1862 … … 1867 1866 if (bd == NULL) 1868 1867 break; 1868 1869 rtems_bdbuf_set_state (bd, RTEMS_BDBUF_STATE_TRANSFER); 1869 1870 1870 1871 req->bufs [transfer_index].user = bd; … … 1872 1873 req->bufs [transfer_index].length = block_size; 1873 1874 req->bufs [transfer_index].buffer = bd->buffer; 1875 1876 if (rtems_bdbuf_tracer) 1877 rtems_bdbuf_show_users ("read-ahead", bd); 1874 1878 1875 1879 ++transfer_index; -
cpukit/libblock/src/ide_part_table.c
r91182bc r47c2327 514 514 if (rc != RTEMS_SUCCESSFUL) 515 515 { 516 free(disk_desc); 516 517 return rc; 517 518 }
Note: See TracChangeset
for help on using the changeset viewer.