mirror of
https://github.com/mariusgreuel/avrdude.git
synced 2025-12-16 10:41:07 +00:00
Exchange of fprintf(stderr, ...) with avrdude_message(...).
This change was made for the shared library, since library functions should not write to std-streams directly. Instead avrdude_message() has to be implemented by the library user. For the avrdude application this function is implemented in main.c. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1305 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
88
dfu.c
88
dfu.c
@@ -37,7 +37,7 @@
|
||||
#ifndef HAVE_LIBUSB
|
||||
|
||||
struct dfu_dev *dfu_open(char *port_name) {
|
||||
fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
|
||||
avrdude_message("%s: Error: No USB support in this compile of avrdude\n",
|
||||
progname);
|
||||
return NULL;
|
||||
}
|
||||
@@ -110,7 +110,7 @@ struct dfu_dev * dfu_open(char *port_spec)
|
||||
*/
|
||||
|
||||
if (strncmp(port_spec, "usb", 3) != 0) {
|
||||
fprintf(stderr, "%s: Error: "
|
||||
avrdude_message("%s: Error: "
|
||||
"Invalid port specification \"%s\" for USB device\n",
|
||||
progname, port_spec);
|
||||
return NULL;
|
||||
@@ -119,7 +119,7 @@ struct dfu_dev * dfu_open(char *port_spec)
|
||||
if(':' == port_spec[3]) {
|
||||
bus_name = strdup(port_spec + 3 + 1);
|
||||
if (bus_name == NULL) {
|
||||
fprintf(stderr, "%s: Out of memory in strdup\n", progname);
|
||||
avrdude_message("%s: Out of memory in strdup\n", progname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ struct dfu_dev * dfu_open(char *port_spec)
|
||||
|
||||
if (dfu == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s: out of memory\n", progname);
|
||||
avrdude_message("%s: out of memory\n", progname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ int dfu_init(struct dfu_dev *dfu, unsigned short vid, unsigned short pid)
|
||||
*/
|
||||
|
||||
if (pid == 0 && dfu->dev_name == NULL) {
|
||||
fprintf(stderr, "%s: Error: No DFU support for part; "
|
||||
avrdude_message("%s: Error: No DFU support for part; "
|
||||
"specify PID in config or USB address (via -P) to override.\n",
|
||||
progname);
|
||||
return -1;
|
||||
@@ -206,20 +206,19 @@ int dfu_init(struct dfu_dev *dfu, unsigned short vid, unsigned short pid)
|
||||
* why the match failed, and if we came across another DFU-capable part.
|
||||
*/
|
||||
|
||||
fprintf(stderr, "%s: Error: No matching USB device found\n", progname);
|
||||
avrdude_message("%s: Error: No matching USB device found\n", progname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(verbose)
|
||||
fprintf(stderr,
|
||||
"%s: Found VID=0x%04x PID=0x%04x at %s:%s\n",
|
||||
progname, found->descriptor.idVendor, found->descriptor.idProduct,
|
||||
found->bus->dirname, found->filename);
|
||||
avrdude_message("%s: Found VID=0x%04x PID=0x%04x at %s:%s\n",
|
||||
progname, found->descriptor.idVendor, found->descriptor.idProduct,
|
||||
found->bus->dirname, found->filename);
|
||||
|
||||
dfu->dev_handle = usb_open(found);
|
||||
|
||||
if (dfu->dev_handle == NULL) {
|
||||
fprintf(stderr, "%s: Error: USB device at %s:%s: %s\n",
|
||||
avrdude_message("%s: Error: USB device at %s:%s: %s\n",
|
||||
progname, found->bus->dirname, found->filename, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
@@ -271,7 +270,7 @@ int dfu_getstatus(struct dfu_dev *dfu, struct dfu_status *status)
|
||||
int result;
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr, "%s: dfu_getstatus(): issuing control IN message\n",
|
||||
avrdude_message("%s: dfu_getstatus(): issuing control IN message\n",
|
||||
progname);
|
||||
|
||||
result = usb_control_msg(dfu->dev_handle,
|
||||
@@ -279,31 +278,30 @@ int dfu_getstatus(struct dfu_dev *dfu, struct dfu_status *status)
|
||||
(char*) status, sizeof(struct dfu_status), dfu->timeout);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "%s: Error: Failed to get DFU status: %s\n",
|
||||
avrdude_message("%s: Error: Failed to get DFU status: %s\n",
|
||||
progname, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result < sizeof(struct dfu_status)) {
|
||||
fprintf(stderr, "%s: Error: Failed to get DFU status: %s\n",
|
||||
avrdude_message("%s: Error: Failed to get DFU status: %s\n",
|
||||
progname, "short read");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result > sizeof(struct dfu_status)) {
|
||||
fprintf(stderr, "%s: Error: Oversize read (should not happen); "
|
||||
avrdude_message("%s: Error: Oversize read (should not happen); "
|
||||
"exiting\n", progname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr,
|
||||
"%s: dfu_getstatus(): bStatus 0x%02x, bwPollTimeout %d, bState 0x%02x, iString %d\n",
|
||||
progname,
|
||||
status->bStatus,
|
||||
status->bwPollTimeout[0] | (status->bwPollTimeout[1] << 8) | (status->bwPollTimeout[2] << 16),
|
||||
status->bState,
|
||||
status->iString);
|
||||
avrdude_message("%s: dfu_getstatus(): bStatus 0x%02x, bwPollTimeout %d, bState 0x%02x, iString %d\n",
|
||||
progname,
|
||||
status->bStatus,
|
||||
status->bwPollTimeout[0] | (status->bwPollTimeout[1] << 8) | (status->bwPollTimeout[2] << 16),
|
||||
status->bState,
|
||||
status->iString);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -313,7 +311,7 @@ int dfu_clrstatus(struct dfu_dev *dfu)
|
||||
int result;
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr, "%s: dfu_clrstatus(): issuing control OUT message\n",
|
||||
avrdude_message("%s: dfu_clrstatus(): issuing control OUT message\n",
|
||||
progname);
|
||||
|
||||
result = usb_control_msg(dfu->dev_handle,
|
||||
@@ -321,7 +319,7 @@ int dfu_clrstatus(struct dfu_dev *dfu)
|
||||
NULL, 0, dfu->timeout);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "%s: Error: Failed to clear DFU status: %s\n",
|
||||
avrdude_message("%s: Error: Failed to clear DFU status: %s\n",
|
||||
progname, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
@@ -334,7 +332,7 @@ int dfu_abort(struct dfu_dev *dfu)
|
||||
int result;
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr, "%s: dfu_abort(): issuing control OUT message\n",
|
||||
avrdude_message("%s: dfu_abort(): issuing control OUT message\n",
|
||||
progname);
|
||||
|
||||
result = usb_control_msg(dfu->dev_handle,
|
||||
@@ -342,7 +340,7 @@ int dfu_abort(struct dfu_dev *dfu)
|
||||
NULL, 0, dfu->timeout);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "%s: Error: Failed to reset DFU state: %s\n",
|
||||
avrdude_message("%s: Error: Failed to reset DFU state: %s\n",
|
||||
progname, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
@@ -356,28 +354,27 @@ int dfu_dnload(struct dfu_dev *dfu, void *ptr, int size)
|
||||
int result;
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr,
|
||||
"%s: dfu_dnload(): issuing control OUT message, wIndex = %d, ptr = %p, size = %d\n",
|
||||
progname, wIndex, ptr, size);
|
||||
avrdude_message("%s: dfu_dnload(): issuing control OUT message, wIndex = %d, ptr = %p, size = %d\n",
|
||||
progname, wIndex, ptr, size);
|
||||
|
||||
result = usb_control_msg(dfu->dev_handle,
|
||||
USB_TYPE_CLASS | USB_RECIP_INTERFACE, DFU_DNLOAD, wIndex++, 0,
|
||||
ptr, size, dfu->timeout);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "%s: Error: DFU_DNLOAD failed: %s\n",
|
||||
avrdude_message("%s: Error: DFU_DNLOAD failed: %s\n",
|
||||
progname, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result < size) {
|
||||
fprintf(stderr, "%s: Error: DFU_DNLOAD failed: %s\n",
|
||||
avrdude_message("%s: Error: DFU_DNLOAD failed: %s\n",
|
||||
progname, "short write");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result > size) {
|
||||
fprintf(stderr, "%s: Error: Oversize write (should not happen); " \
|
||||
avrdude_message("%s: Error: Oversize write (should not happen); " \
|
||||
"exiting\n", progname);
|
||||
exit(1);
|
||||
}
|
||||
@@ -390,28 +387,27 @@ int dfu_upload(struct dfu_dev *dfu, void *ptr, int size)
|
||||
int result;
|
||||
|
||||
if (verbose > 3)
|
||||
fprintf(stderr,
|
||||
"%s: dfu_upload(): issuing control IN message, wIndex = %d, ptr = %p, size = %d\n",
|
||||
progname, wIndex, ptr, size);
|
||||
avrdude_message("%s: dfu_upload(): issuing control IN message, wIndex = %d, ptr = %p, size = %d\n",
|
||||
progname, wIndex, ptr, size);
|
||||
|
||||
result = usb_control_msg(dfu->dev_handle,
|
||||
0x80 | USB_TYPE_CLASS | USB_RECIP_INTERFACE, DFU_UPLOAD, wIndex++, 0,
|
||||
ptr, size, dfu->timeout);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "%s: Error: DFU_UPLOAD failed: %s\n",
|
||||
avrdude_message("%s: Error: DFU_UPLOAD failed: %s\n",
|
||||
progname, usb_strerror());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result < size) {
|
||||
fprintf(stderr, "%s: Error: DFU_UPLOAD failed: %s\n",
|
||||
avrdude_message("%s: Error: DFU_UPLOAD failed: %s\n",
|
||||
progname, "short read");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result > size) {
|
||||
fprintf(stderr, "%s: Error: Oversize read (should not happen); "
|
||||
avrdude_message("%s: Error: Oversize read (should not happen); "
|
||||
"exiting\n", progname);
|
||||
exit(1);
|
||||
}
|
||||
@@ -422,26 +418,26 @@ int dfu_upload(struct dfu_dev *dfu, void *ptr, int size)
|
||||
void dfu_show_info(struct dfu_dev *dfu)
|
||||
{
|
||||
if (dfu->manf_str != NULL)
|
||||
fprintf(stderr, " USB Vendor : %s (0x%04hX)\n",
|
||||
avrdude_message(" USB Vendor : %s (0x%04hX)\n",
|
||||
dfu->manf_str, (unsigned short) dfu->dev_desc.idVendor);
|
||||
else
|
||||
fprintf(stderr, " USB Vendor : 0x%04hX\n",
|
||||
avrdude_message(" USB Vendor : 0x%04hX\n",
|
||||
(unsigned short) dfu->dev_desc.idVendor);
|
||||
|
||||
if (dfu->prod_str != NULL)
|
||||
fprintf(stderr, " USB Product : %s (0x%04hX)\n",
|
||||
avrdude_message(" USB Product : %s (0x%04hX)\n",
|
||||
dfu->prod_str, (unsigned short) dfu->dev_desc.idProduct);
|
||||
else
|
||||
fprintf(stderr, " USB Product : 0x%04hX\n",
|
||||
avrdude_message(" USB Product : 0x%04hX\n",
|
||||
(unsigned short) dfu->dev_desc.idProduct);
|
||||
|
||||
fprintf(stderr, " USB Release : %hu.%hu.%hu\n",
|
||||
avrdude_message(" USB Release : %hu.%hu.%hu\n",
|
||||
((unsigned short) dfu->dev_desc.bcdDevice >> 8) & 0xFF,
|
||||
((unsigned short) dfu->dev_desc.bcdDevice >> 4) & 0xF,
|
||||
((unsigned short) dfu->dev_desc.bcdDevice >> 0) & 0xF);
|
||||
|
||||
if (dfu->serno_str != NULL)
|
||||
fprintf(stderr, " USB Serial No : %s\n", dfu->serno_str);
|
||||
avrdude_message(" USB Serial No : %s\n", dfu->serno_str);
|
||||
}
|
||||
|
||||
/* INTERNAL FUNCTION DEFINITIONS
|
||||
@@ -458,7 +454,7 @@ char * get_usb_string(usb_dev_handle * dev_handle, int index) {
|
||||
result = usb_get_string_simple(dev_handle, index, buffer, sizeof(buffer)-1);
|
||||
|
||||
if (result < 0) {
|
||||
fprintf( stderr, "%s: Warning: Failed to read USB device string %d: %s\n",
|
||||
avrdude_message("%s: Warning: Failed to read USB device string %d: %s\n",
|
||||
progname, index, usb_strerror());
|
||||
return NULL;
|
||||
}
|
||||
@@ -466,7 +462,7 @@ char * get_usb_string(usb_dev_handle * dev_handle, int index) {
|
||||
str = malloc(result+1);
|
||||
|
||||
if (str == NULL) {
|
||||
fprintf(stderr, "%s: Out of memory allocating a string\n", progname);
|
||||
avrdude_message("%s: Out of memory allocating a string\n", progname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user