Changeset 84a04dd in mainline for uspace/lib/usb/src


Ignore:
Timestamp:
2011-04-18T20:21:58Z (14 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
44b1674, c7d19d84, da1dd48, e3f1987
Parents:
8595577b (diff), 4125b7d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

C-style, more IPC hiding (#196, #187)

Removed obsoleted usb_pipe_start_session() and
usb_pipe_end_session().

Printf-like functions produces warning with bad modifiers.

usb_pipe_start_long_transfer() is of type void to save-up checks
that would rarely fail (failure is received upon trying to communicate
over such pipe).

Location:
uspace/lib/usb/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/devdrv.c

    r8595577b r84a04dd  
    236236
    237237        /* It is worth to start a long transfer. */
    238         rc = usb_pipe_start_long_transfer(ctrl_pipe);
    239         if (rc != EOK) {
    240                 return rc;
    241         }
     238        usb_pipe_start_long_transfer(ctrl_pipe);
    242239
    243240        /* Get the device descriptor. */
  • uspace/lib/usb/src/devpoll.c

    r8595577b r84a04dd  
    7878                usb_endpoint_mapping_t *mapping
    7979                    = &polling_data->dev->pipes[polling_data->pipe_index];
    80                 usb_log_debug("Poll0x%x: started polling of `%s' - " \
     80                usb_log_debug("Poll%p: started polling of `%s' - " \
    8181                    "interface %d (%s,%d,%d), %zuB/%zu.\n",
    8282                    polling_data,
     
    100100                        if (rc == EOK) {
    101101                                usb_log_debug(
    102                                     "Poll0x%x: received: '%s' (%zuB).\n",
     102                                    "Poll%p: received: '%s' (%zuB).\n",
    103103                                    polling_data,
    104104                                    usb_debug_str_buffer(polling_data->buffer,
     
    107107                        } else {
    108108                                usb_log_debug(
    109                                     "Poll0x%x: polling failed: %s.\n",
     109                                    "Poll%p: polling failed: %s.\n",
    110110                                    polling_data, str_error(rc));
    111111                        }
  • uspace/lib/usb/src/hidparser.c

    r8595577b r84a04dd  
    167167
    168168                        usb_log_debug2(
    169                                 "i(%u) data(%X) value(%X): TAG %u, class %u, size %u - ", i,
     169                                "i(%zu) data(%X) value(%X): TAG %d, class %u, size %u - ", i,
    170170                            data[i], usb_hid_report_tag_data_int32(data+i+1,item_size),
    171171                            tag, class, item_size);
     
    576576                report_item = list_get_instance(item, usb_hid_report_item_t, link);
    577577
    578                 usb_log_debug("\tOFFSET: %X\n", report_item->offset);
     578                usb_log_debug("\tOFFSET: %zX\n", report_item->offset);
    579579                usb_log_debug("\tCOUNT: %X\n", report_item->count);
    580580                usb_log_debug("\tSIZE: %X\n", report_item->size);
  • uspace/lib/usb/src/hidreport.c

    r8595577b r84a04dd  
    109109       
    110110        if (*d != sizeof(usb_standard_hid_descriptor_t)) {
    111                 usb_log_error("HID descriptor hass wrong size (%u, expected %u"
     111                usb_log_error("HID descriptor has wrong size (%u, expected %zu"
    112112                    ")\n", *d, sizeof(usb_standard_hid_descriptor_t));
    113113                return EINVAL;
     
    149149                free(*report_desc);
    150150                *report_desc = NULL;
    151                 usb_log_error("Report descriptor has wrong size (%u, expected "
     151                usb_log_error("Report descriptor has wrong size (%zu, expected "
    152152                    "%u)\n", actual_size, length);
    153153                return EINVAL;
  • uspace/lib/usb/src/pipepriv.c

    r8595577b r84a04dd  
    7777 *
    7878 * @param pipe The USB pipe.
     79 * @param hide_failure Whether to hide failure when adding reference
     80 *      (use soft refcount).
    7981 * @return Error code.
    8082 * @retval EOK Currently always.
    8183 */
    82 int pipe_add_ref(usb_pipe_t *pipe)
     84int pipe_add_ref(usb_pipe_t *pipe, bool hide_failure)
    8385{
    84 another_try:
    8586        pipe_acquire(pipe);
    8687
     
    8990                int phone = devman_device_connect(pipe->wire->hc_handle, 0);
    9091                if (phone < 0) {
    91                         // TODO: treat some error as non-recoverable
    92                         // and return error from here
     92                        if (hide_failure) {
     93                                pipe->refcount_soft++;
     94                                phone = EOK;
     95                        }
    9396                        pipe_release(pipe);
    94                         goto another_try;
     97                        return phone;
    9598                }
    9699                /*
     
    114117{
    115118        pipe_acquire(pipe);
     119        if (pipe->refcount_soft > 0) {
     120                pipe->refcount_soft--;
     121                pipe_release(pipe);
     122                return;
     123        }
    116124        assert(pipe->refcount > 0);
    117125        pipe->refcount--;
  • uspace/lib/usb/src/pipepriv.h

    r8595577b r84a04dd  
    3737
    3838#include <usb/pipes.h>
     39#include <bool.h>
    3940
    4041void pipe_acquire(usb_pipe_t *);
     
    4445void pipe_end_transaction(usb_pipe_t *);
    4546
    46 int pipe_add_ref(usb_pipe_t *);
     47int pipe_add_ref(usb_pipe_t *, bool);
    4748void pipe_drop_ref(usb_pipe_t *);
    4849
  • uspace/lib/usb/src/pipes.c

    r8595577b r84a04dd  
    229229}
    230230
    231 
    232 /** Start a session on the endpoint pipe.
    233  *
    234  * A session is something inside what any communication occurs.
    235  * It is expected that sessions would be started right before the transfer
    236  * and ended - see usb_pipe_end_session() - after the last
    237  * transfer.
    238  * The reason for this is that session actually opens some communication
    239  * channel to the host controller (or to the physical hardware if you
    240  * wish) and thus it involves acquiring kernel resources.
    241  * Since they are limited, sessions shall not be longer than strictly
    242  * necessary.
    243  *
    244  * @deprecated
    245  * Obsoleted with introduction of usb_pipe_start_long_transfer
    246  *
    247  * @param pipe Endpoint pipe to start the session on.
    248  * @return Error code.
    249  */
    250 int usb_pipe_start_session(usb_pipe_t *pipe)
    251 {
    252         usb_log_warning("usb_pipe_start_session() was deprecated.\n");
    253         return EOK;
    254 }
    255 
    256 
    257 /** Ends a session on the endpoint pipe.
    258  *
    259  * @deprecated
    260  * Obsoleted with introduction of usb_pipe_end_long_transfer
    261  *
    262  * @see usb_pipe_start_session
    263  *
    264  * @param pipe Endpoint pipe to end the session on.
    265  * @return Error code.
    266  */
    267 int usb_pipe_end_session(usb_pipe_t *pipe)
    268 {
    269         usb_log_warning("usb_pipe_end_session() was deprecated.\n");
    270         return EOK;
    271 }
    272 
    273 /** Tell whether a session is started (open) on the endpoint pipe.
    274  *
    275  * The expected usage of this function is in assertions for some
    276  * nested functions.
    277  *
    278  * @param pipe Endpoint pipe in question.
    279  * @return Whether @p pipe has opened a session.
    280  */
    281 bool usb_pipe_is_session_started(usb_pipe_t *pipe)
    282 {
    283         pipe_acquire(pipe);
    284         bool started = pipe->refcount > 0;
    285         pipe_release(pipe);
    286         return started;
    287 }
    288 
    289231/** Prepare pipe for a long transfer.
    290232 *
     
    297239 * @return Error code.
    298240 */
    299 int usb_pipe_start_long_transfer(usb_pipe_t *pipe)
    300 {
    301         return pipe_add_ref(pipe);
     241void usb_pipe_start_long_transfer(usb_pipe_t *pipe)
     242{
     243        (void) pipe_add_ref(pipe, true);
    302244}
    303245
  • uspace/lib/usb/src/pipesinit.c

    r8595577b r84a04dd  
    365365        pipe->direction = direction;
    366366        pipe->refcount = 0;
     367        pipe->refcount_soft = 0;
    367368        pipe->auto_reset_halt = false;
    368369
     
    419420        int rc;
    420421
    421         rc = usb_pipe_start_long_transfer(pipe);
    422         if (rc != EOK) {
    423                 return rc;
    424         }
    425 
     422        usb_pipe_start_long_transfer(pipe);
    426423
    427424        uint8_t dev_descr_start[CTRL_PIPE_MIN_PACKET_SIZE];
  • uspace/lib/usb/src/pipesio.c

    r8595577b r84a04dd  
    173173
    174174        int rc;
    175         rc = pipe_add_ref(pipe);
     175        rc = pipe_add_ref(pipe, false);
    176176        if (rc != EOK) {
    177177                return rc;
     
    296296        int rc;
    297297
    298         rc = pipe_add_ref(pipe);
     298        rc = pipe_add_ref(pipe, false);
    299299        if (rc != EOK) {
    300300                return rc;
     
    447447        int rc;
    448448
    449         rc = pipe_add_ref(pipe);
     449        rc = pipe_add_ref(pipe, false);
    450450        if (rc != EOK) {
    451451                return rc;
     
    579579        int rc;
    580580
    581         rc = pipe_add_ref(pipe);
     581        rc = pipe_add_ref(pipe, false);
    582582        if (rc != EOK) {
    583583                return rc;
Note: See TracChangeset for help on using the changeset viewer.