- Timestamp:
- 2006-11-30T15:38:45Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7bf7ef7
- Parents:
- 8c19cf28
- Location:
- kernel/generic
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/lib/rd.h
r8c19cf28 r7c34822e 76 76 } rd_header; 77 77 78 extern int init_rd(rd_header * addr );78 extern int init_rd(rd_header * addr, size_t size); 79 79 80 80 #endif -
kernel/generic/src/lib/rd.c
r8c19cf28 r7c34822e 40 40 #include <lib/rd.h> 41 41 #include <arch/byteorder.h> 42 #include <mm/frame.h> 43 #include <sysinfo/sysinfo.h> 42 44 43 int init_rd(rd_header * header )45 int init_rd(rd_header * header, size_t size) 44 46 { 45 47 /* Identify RAM disk */ … … 51 53 return RE_UNSUPPORTED; 52 54 53 uint64_t hsize; 55 uint32_t hsize; 56 uint64_t dsize; 54 57 switch (header->data_type) { 55 58 case RD_DATA_LSB: 56 hsize = uint64_t_le2host(header->header_size); 59 hsize = uint32_t_le2host(header->header_size); 60 dsize = uint64_t_le2host(header->data_size); 57 61 break; 58 // case RD_DATA_MSB: 59 // hsize = uint64_t_be2host(header->header_size); 60 // break; 62 case RD_DATA_MSB: 63 hsize = uint32_t_be2host(header->header_size); 64 dsize = uint64_t_le2host(header->data_size); 65 break; 61 66 default: 62 67 return RE_UNSUPPORTED; 63 68 } 64 69 70 if ((hsize % FRAME_SIZE) || (dsize % FRAME_SIZE)) 71 return RE_UNSUPPORTED; 72 73 if (hsize > size) 74 return RE_INVALID; 75 76 if ((uint64_t) hsize + dsize > size) 77 dsize = size - hsize; 78 79 sysinfo_set_item_val("rd", NULL, true); 80 sysinfo_set_item_val("rd.size", NULL, dsize); 81 sysinfo_set_item_val("rd.address.physical", NULL, (unative_t) KA2PA((void *) header + hsize)); 65 82 66 83 return RE_OK; -
kernel/generic/src/main/kinit.c
r8c19cf28 r7c34822e 181 181 ipc_phone_0 = &utask->answerbox; 182 182 } else { 183 int rd = init_rd(( void *) init.tasks[i].addr);183 int rd = init_rd((rd_header *) init.tasks[i].addr, init.tasks[i].size); 184 184 185 185 if (rd != RE_OK)
Note:
See TracChangeset
for help on using the changeset viewer.