Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset cfaa35a in mainline


Ignore:
Timestamp:
2012-08-13T09:52:09Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
86939b1
Parents:
cd529c4
Message:

Rename call_t's link to ab_link as this link is exclusively used for
linking the call into one of the answerbox lists.

Location:
kernel/generic
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/ipc.h

    rcd529c4 rcfaa35a  
    106106
    107107typedef struct {
    108         link_t link;
     108        /** Answerbox link. */
     109        link_t ab_link;
    109110       
    110111        unsigned int flags;
  • kernel/generic/src/ipc/event.c

    rcd529c4 rcfaa35a  
    163163                                call->data.task_id = TASK ? TASK->taskid : 0;
    164164                               
    165                                 irq_spinlock_lock(&event->answerbox->irq_lock, true);
    166                                 list_append(&call->link, &event->answerbox->irq_notifs);
    167                                 irq_spinlock_unlock(&event->answerbox->irq_lock, true);
    168                                
    169                                 waitq_wakeup(&event->answerbox->wq, WAKEUP_FIRST);
     165                                irq_spinlock_lock(&event->answerbox->irq_lock,
     166                                    true);
     167                                list_append(&call->ab_link,
     168                                    &event->answerbox->irq_notifs);
     169                                irq_spinlock_unlock(&event->answerbox->irq_lock,
     170                                    true);
     171                               
     172                                waitq_wakeup(&event->answerbox->wq,
     173                                    WAKEUP_FIRST);
    170174                               
    171175                                if (mask)
  • kernel/generic/src/ipc/ipc.c

    rcd529c4 rcfaa35a  
    191191                irq_spinlock_lock(&callerbox->lock, true);
    192192       
    193         list_append(&call->link, &callerbox->answers);
     193        list_append(&call->ab_link, &callerbox->answers);
    194194       
    195195        if (do_lock)
     
    209209        /* Remove from active box */
    210210        irq_spinlock_lock(&box->lock, true);
    211         list_remove(&call->link);
     211        list_remove(&call->ab_link);
    212212        irq_spinlock_unlock(&box->lock, true);
    213213       
     
    255255       
    256256        irq_spinlock_lock(&box->lock, true);
    257         list_append(&call->link, &box->calls);
     257        list_append(&call->ab_link, &box->calls);
    258258        irq_spinlock_unlock(&box->lock, true);
    259259       
     
    356356        TASK->ipc_info.forwarded++;
    357357        irq_spinlock_pass(&TASK->lock, &oldbox->lock);
    358         list_remove(&call->link);
     358        list_remove(&call->ab_link);
    359359        irq_spinlock_unlock(&oldbox->lock, true);
    360360       
     
    406406               
    407407                request = list_get_instance(list_first(&box->irq_notifs),
    408                     call_t, link);
    409                 list_remove(&request->link);
     408                    call_t, ab_link);
     409                list_remove(&request->ab_link);
    410410               
    411411                irq_spinlock_unlock(&box->irq_lock, false);
     
    416416                /* Handle asynchronous answers */
    417417                request = list_get_instance(list_first(&box->answers),
    418                     call_t, link);
    419                 list_remove(&request->link);
     418                    call_t, ab_link);
     419                list_remove(&request->ab_link);
    420420                atomic_dec(&request->data.phone->active_calls);
    421421        } else if (!list_empty(&box->calls)) {
     
    425425                /* Handle requests */
    426426                request = list_get_instance(list_first(&box->calls),
    427                     call_t, link);
    428                 list_remove(&request->link);
     427                    call_t, ab_link);
     428                list_remove(&request->ab_link);
    429429               
    430430                /* Append request to dispatch queue */
    431                 list_append(&request->link, &box->dispatched_calls);
     431                list_append(&request->ab_link, &box->dispatched_calls);
    432432        } else {
    433433                /* This can happen regularly after ipc_cleanup */
     
    455455{
    456456        while (!list_empty(lst)) {
    457                 call_t *call = list_get_instance(list_first(lst), call_t, link);
     457                call_t *call = list_get_instance(list_first(lst), call_t,
     458                    ab_link);
    458459                if (call->buffer)
    459460                        free(call->buffer);
    460461               
    461                 list_remove(&call->link);
     462                list_remove(&call->ab_link);
    462463               
    463464                IPC_SET_RETVAL(call->data, EHANGUP);
     
    689690        printf(" --- incomming calls ---\n");
    690691        list_foreach(task->answerbox.calls, cur) {
    691                 call_t *call = list_get_instance(cur, call_t, link);
     692                call_t *call = list_get_instance(cur, call_t, ab_link);
    692693               
    693694#ifdef __32_BITS__
     
    709710        printf(" --- dispatched calls ---\n");
    710711        list_foreach(task->answerbox.dispatched_calls, cur) {
    711                 call_t *call = list_get_instance(cur, call_t, link);
     712                call_t *call = list_get_instance(cur, call_t, ab_link);
    712713               
    713714#ifdef __32_BITS__
     
    729730        printf(" --- incoming answers ---\n");
    730731        list_foreach(task->answerbox.answers, cur) {
    731                 call_t *call = list_get_instance(cur, call_t, link);
     732                call_t *call = list_get_instance(cur, call_t, ab_link);
    732733               
    733734#ifdef __32_BITS__
  • kernel/generic/src/ipc/ipcrsc.c

    rcd529c4 rcfaa35a  
    151151       
    152152        list_foreach(TASK->answerbox.dispatched_calls, lst) {
    153                 call_t *call = list_get_instance(lst, call_t, link);
     153                call_t *call = list_get_instance(lst, call_t, ab_link);
    154154                if ((sysarg_t) call == callid) {
    155155                        result = call;
  • kernel/generic/src/ipc/irq.c

    rcd529c4 rcfaa35a  
    510510{
    511511        irq_spinlock_lock(&irq->notif_cfg.answerbox->irq_lock, false);
    512         list_append(&call->link, &irq->notif_cfg.answerbox->irq_notifs);
     512        list_append(&call->ab_link, &irq->notif_cfg.answerbox->irq_notifs);
    513513        irq_spinlock_unlock(&irq->notif_cfg.answerbox->irq_lock, false);
    514514       
Note: See TracChangeset for help on using the changeset viewer.