Changeset fa8d346 in mainline for uspace/app/mkbd/main.c
- Timestamp:
- 2011-05-24T22:19:26Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8d3f198
- Parents:
- 9dddb3d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/mkbd/main.c
r9dddb3d rfa8d346 60 60 static int dev_phone = -1; 61 61 62 static int initialize_report_parser(int dev_phone, usb_hid_report_t *report) 63 { 64 report = (usb_hid_report_t *)malloc(sizeof(usb_hid_report_t)); 65 if (report == NULL) { 66 return ENOMEM; 67 } 68 69 int rc = usb_hid_report_init(report); 70 if (rc != EOK) { 71 usb_hid_free_report(report); 62 static int initialize_report_parser(int dev_phone, usb_hid_report_t **report) 63 { 64 *report = (usb_hid_report_t *)malloc(sizeof(usb_hid_report_t)); 65 if (*report == NULL) { 66 return ENOMEM; 67 } 68 69 int rc = usb_hid_report_init(*report); 70 if (rc != EOK) { 71 usb_hid_free_report(*report); 72 *report = NULL; 73 printf("usb_hid_report_init() failed.\n"); 72 74 return rc; 73 75 } … … 78 80 dev_phone, &report_desc_size); 79 81 if (rc != EOK) { 80 usb_hid_free_report(report); 82 usb_hid_free_report(*report); 83 *report = NULL; 84 printf("usbhid_dev_get_report_descriptor_length() failed.\n"); 81 85 return rc; 82 86 } 83 87 84 88 if (report_desc_size == 0) { 85 usb_hid_free_report(report); 89 usb_hid_free_report(*report); 90 *report = NULL; 91 printf("usbhid_dev_get_report_descriptor_length() returned 0.\n"); 86 92 return EINVAL; // TODO: other error code? 87 93 } … … 89 95 uint8_t *desc = (uint8_t *)malloc(report_desc_size); 90 96 if (desc == NULL) { 91 usb_hid_free_report(report); 97 usb_hid_free_report(*report); 98 *report = NULL; 92 99 return ENOMEM; 93 100 } … … 98 105 &actual_size); 99 106 if (rc != EOK) { 100 usb_hid_free_report(report); 107 usb_hid_free_report(*report); 108 *report = NULL; 101 109 free(desc); 110 printf("usbhid_dev_get_report_descriptor() failed.\n"); 102 111 return rc; 103 112 } 104 113 105 114 if (actual_size != report_desc_size) { 106 usb_hid_free_report(report); 115 usb_hid_free_report(*report); 116 *report = NULL; 107 117 free(desc); 118 printf("usbhid_dev_get_report_descriptor() returned wrong size:" 119 " %zu, expected: %zu.\n", actual_size, report_desc_size); 108 120 return EINVAL; // TODO: other error code? 109 121 } … … 111 123 // initialize the report parser 112 124 113 rc = usb_hid_parse_report_descriptor( report, desc, report_desc_size);125 rc = usb_hid_parse_report_descriptor(*report, desc, report_desc_size); 114 126 free(desc); 115 127 116 128 if (rc != EOK) { 117 129 free(desc); 130 printf("usb_hid_parse_report_descriptor() failed.\n"); 118 131 return rc; 119 132 } … … 215 228 216 229 usb_hid_report_t *report = NULL; 217 rc = initialize_report_parser(dev_phone, report);230 rc = initialize_report_parser(dev_phone, &report); 218 231 if (rc != EOK) { 219 232 printf("Failed to initialize report parser: %s\n",
Note:
See TracChangeset
for help on using the changeset viewer.