Changeset 0ecfc62 in mainline
- Timestamp:
- 2015-10-09T18:11:08Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3a43785
- Parents:
- 372df8f
- Location:
- uspace
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/fdisk/fdisk.c
r372df8f r0ecfc62 525 525 } 526 526 527 switch (linfo. dcnt) {528 case dc_empty:529 printf("Disk is empty.\n");530 break; 531 case dc_label:527 switch (linfo.ltype) { 528 case lt_none: 529 printf("Disk contains no label.\n"); 530 break; 531 default: 532 532 rc = fdisk_ltype_format(linfo.ltype, &sltype); 533 533 if (rc != EOK) { … … 540 540 free(sltype); 541 541 sltype = NULL; 542 break;543 case dc_fs:544 printf("Disk contains a file system.\n");545 break;546 case dc_unknown:547 printf("Disk contains unknown data.\n");548 542 break; 549 543 } … … 602 596 } 603 597 604 if (linfo.dcnt == dc_label) { 605 if ((linfo.flags & lf_ext_supp) != 0) { 606 if ((linfo.flags & lf_can_create_pri) != 0) { 607 rc = nchoice_add(choice, "Create primary " 608 "partition", 609 (void *)devac_create_pri_part); 610 if (rc != EOK) { 611 assert(rc == ENOMEM); 598 if ((linfo.flags & lf_ext_supp) != 0) { 599 if ((linfo.flags & lf_can_create_pri) != 0) { 600 rc = nchoice_add(choice, "Create primary " 601 "partition", 602 (void *)devac_create_pri_part); 603 if (rc != EOK) { 604 assert(rc == ENOMEM); 605 printf("Out of memory.\n"); 606 goto error; 607 } 608 } 609 610 if ((linfo.flags & lf_can_create_ext) != 0) { 611 rc = nchoice_add(choice, "Create extended " 612 "partition", 613 (void *)devac_create_ext_part); 614 if (rc != EOK) { 615 assert(rc == ENOMEM); 616 printf("Out of memory.\n"); 617 goto error; 618 } 619 } 620 621 if ((linfo.flags & lf_can_create_log) != 0) { 622 rc = nchoice_add(choice, "Create logical " 623 "partition", 624 (void *)devac_create_log_part); 625 if (rc != EOK) { 626 assert(rc == ENOMEM); 627 printf("Out of memory.\n"); 628 goto error; 629 } 630 } 631 } else { /* (linfo.flags & lf_ext_supp) == 0 */ 632 if ((linfo.flags & lf_can_create_pri) != 0) { 633 rc = nchoice_add(choice, "Create partition", 634 (void *)devac_create_pri_part); 635 if (rc != EOK) { 636 assert(rc == ENOMEM); 612 637 printf("Out of memory.\n"); 613 638 goto error; 614 639 } 615 }616 617 if ((linfo.flags & lf_can_create_ext) != 0) {618 rc = nchoice_add(choice, "Create extended "619 "partition",620 (void *)devac_create_ext_part);621 if (rc != EOK) {622 assert(rc == ENOMEM);623 printf("Out of memory.\n");624 goto error;625 }626 }627 628 if ((linfo.flags & lf_can_create_log) != 0) {629 rc = nchoice_add(choice, "Create logical "630 "partition",631 (void *)devac_create_log_part);632 if (rc != EOK) {633 assert(rc == ENOMEM);634 printf("Out of memory.\n");635 goto error;636 }637 }638 } else { /* (linfo.flags & lf_ext_supp) == 0 */639 if ((linfo.flags & lf_can_create_pri) != 0) {640 rc = nchoice_add(choice, "Create partition",641 (void *)devac_create_pri_part);642 if (rc != EOK) {643 assert(rc == ENOMEM);644 printf("Out of memory.\n");645 goto error;646 }647 }648 640 } 649 641 } … … 659 651 } 660 652 661 if (linfo. dcnt == dc_empty) {653 if (linfo.ltype == lt_none) { 662 654 rc = nchoice_add(choice, "Create label", 663 655 (void *)devac_create_label); -
uspace/lib/c/generic/vol.c
r372df8f r0ecfc62 192 192 { 193 193 async_exch_t *exch; 194 sysarg_t dcnt, ltype, flags;195 i nt retval;194 sysarg_t retval; 195 ipc_call_t answer; 196 196 197 197 exch = async_exchange_begin(vol->sess); 198 retval = async_req_1_3(exch, VOL_PART_INFO, sid, &dcnt, <ype,199 &flags);198 aid_t req = async_send_1(exch, VOL_PART_INFO, sid, &answer); 199 int rc = async_data_read_start(exch, vinfo, sizeof(vol_part_info_t)); 200 200 async_exchange_end(exch); 201 201 202 if (rc != EOK) { 203 async_forget(req); 204 return EIO; 205 } 206 207 async_wait_for(req, &retval); 202 208 if (retval != EOK) 203 209 return EIO; 204 210 205 vinfo->dcnt = (label_disk_cnt_t)dcnt;206 vinfo->ltype = (label_type_t)ltype;207 vinfo->flags = (label_flags_t)flags;208 211 return EOK; 209 212 } -
uspace/lib/c/include/types/label.h
r372df8f r0ecfc62 38 38 #include <types/uuid.h> 39 39 40 /** Diskcontents */40 /** Partition contents */ 41 41 typedef enum { 42 /** Disk is considered empty */ 43 dc_empty = 0, 44 /** Disk contains a recognized label */ 45 dc_label, 46 /** Disk contains a recognized filesystem */ 47 dc_fs, 48 /** Disk contains unrecognized data */ 49 dc_unknown 50 } label_disk_cnt_t; 42 /** Partition is considered empty */ 43 ptc_empty = 0, 44 /** Partition contains a recognized filesystem */ 45 ptc_fs, 46 /** Partition contains unrecognized data */ 47 ptc_unknown 48 } label_part_cnt_t; 51 49 52 50 /** Disk label type */ -
uspace/lib/c/include/vol.h
r372df8f r0ecfc62 47 47 } vol_t; 48 48 49 typedef enum { 50 /** Partition is empty */ 51 vpc_empty, 52 /** Partition contains a recognized filesystem */ 53 vpc_fs, 54 /** Partition contains unrecognized data */ 55 vpc_unknown 56 } vol_part_cnt_t; 57 58 /** File system type */ 59 typedef enum { 60 fs_exfat, 61 fs_fat, 62 fs_minix, 63 fs_ext4 64 } vol_fstype_t; 65 49 66 /** Partition information */ 50 67 typedef struct { 51 /** Partition contents */ 52 label_disk_cnt_t dcnt; 53 /** Label type, if partition contents is label XXX */ 54 label_type_t ltype; 55 /** Label flags */ 56 label_flags_t flags; 68 /** Partition content type */ 69 vol_part_cnt_t pcnt; 70 /** Filesystem type */ 71 vol_fstype_t fstype; 57 72 } vol_part_info_t; 58 73 -
uspace/lib/fdisk/include/types/fdisk.h
r372df8f r0ecfc62 102 102 /** Fdisk instance */ 103 103 struct fdisk *fdisk; 104 /** Disk contents */105 label_disk_cnt_t dcnt;106 104 /** Service ID */ 107 105 service_id_t sid; … … 123 121 124 122 typedef struct { 125 /** Disk contents */126 label_disk_cnt_t dcnt;127 123 /** Label type */ 128 124 label_type_t ltype; -
uspace/lib/fdisk/src/fdisk.c
r372df8f r0ecfc62 388 388 } 389 389 390 dev->dcnt = dc_label;391 392 390 printf("get label info\n"); 393 391 rc = fdisk_update_dev_info(dev); … … 486 484 } 487 485 488 info->dcnt = dc_label;489 486 info->ltype = vinfo.ltype; 490 487 info->flags = vinfo.flags; … … 526 523 return EIO; 527 524 528 dev->dcnt = dc_empty;529 525 return EOK; 530 526 } -
uspace/lib/label/include/types/liblabel.h
r372df8f r0ecfc62 65 65 66 66 struct label_info { 67 /** Disk contents */68 label_disk_cnt_t dcnt;69 67 /** Label type */ 70 68 label_type_t ltype; -
uspace/lib/label/src/dummy.c
r372df8f r0ecfc62 157 157 { 158 158 memset(linfo, 0, sizeof(label_info_t)); 159 linfo->dcnt = dc_label;160 159 linfo->ltype = lt_none; 161 160 linfo->flags = 0; -
uspace/lib/label/src/gpt.c
r372df8f r0ecfc62 547 547 { 548 548 memset(linfo, 0, sizeof(label_info_t)); 549 linfo->dcnt = dc_label;550 549 linfo->ltype = lt_gpt; 551 550 linfo->flags = lf_ptype_uuid; /* Partition type is in UUID format */ -
uspace/lib/label/src/mbr.c
r372df8f r0ecfc62 402 402 { 403 403 memset(linfo, 0, sizeof(label_info_t)); 404 linfo->dcnt = dc_label;405 404 linfo->ltype = lt_mbr; 406 405 -
uspace/srv/volsrv/part.c
r372df8f r0ecfc62 113 113 114 114 link_initialize(&part->lparts); 115 part-> dcnt = dc_empty;115 part->pcnt = vpc_empty; 116 116 117 117 return part; … … 149 149 log_msg(LOG_DEFAULT, LVL_NOTE, "Probe partition %s", part->svc_name); 150 150 151 part-> dcnt = dc_unknown;151 part->pcnt = vpc_unknown; 152 152 list_append(&part->lparts, &vol_parts); 153 153 … … 227 227 int vol_part_empty_part(vol_part_t *part) 228 228 { 229 part->dcnt = dc_empty; 230 231 return EOK; 232 } 233 234 int vol_part_get_info(vol_part_t *part, vol_part_info_t *dinfo) 235 { 236 dinfo->dcnt = part->dcnt; 229 part->pcnt = vpc_empty; 230 231 return EOK; 232 } 233 234 int vol_part_get_info(vol_part_t *part, vol_part_info_t *pinfo) 235 { 236 pinfo->pcnt = part->pcnt; 237 pinfo->fstype = part->fstype; 237 238 return EOK; 238 239 } -
uspace/srv/volsrv/types/part.h
r372df8f r0ecfc62 48 48 /** Service name */ 49 49 char *svc_name; 50 /** Diskcontents */51 label_disk_cnt_t dcnt;52 /** Labeltype */53 label_type_t ltype;50 /** Partition contents */ 51 vol_part_cnt_t pcnt; 52 /** Filesystem type */ 53 vol_fstype_t fstype; 54 54 } vol_part_t; 55 55 -
uspace/srv/volsrv/volsrv.c
r372df8f r0ecfc62 40 40 #include <ipc/vol.h> 41 41 #include <loc.h> 42 #include <macros.h> 42 43 #include <stdio.h> 43 44 #include <stdlib.h> … … 135 136 } 136 137 137 async_answer_3(iid, rc, pinfo.dcnt, pinfo.ltype, pinfo.flags); 138 ipc_callid_t callid; 139 size_t size; 140 if (!async_data_read_receive(&callid, &size)) { 141 async_answer_0(callid, EREFUSED); 142 async_answer_0(iid, EREFUSED); 143 return; 144 } 145 146 if (size != sizeof(vol_part_info_t)) { 147 async_answer_0(callid, EINVAL); 148 async_answer_0(iid, EINVAL); 149 return; 150 } 151 152 rc = async_data_read_finalize(callid, &pinfo, 153 min(size, sizeof(pinfo))); 154 if (rc != EOK) { 155 async_answer_0(callid, rc); 156 async_answer_0(iid, rc); 157 return; 158 } 159 160 async_answer_0(iid, EOK); 138 161 } 139 162
Note:
See TracChangeset
for help on using the changeset viewer.