Changeset eb3d379 in mainline for generic/src/ipc/ipcrsc.c


Ignore:
Timestamp:
2006-06-04T15:58:01Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8adafa0
Parents:
7669bcf
Message:

Slightly remodelled ipc hangups to facilitate correct cleanup.
Doc updates for frame allocator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/ipc/ipcrsc.c

    r7669bcf reb3d379  
    159159       
    160160        for (i=0; i < IPC_MAX_PHONES; i++) {
    161                 if (TASK->phones[i].busy==IPC_BUSY_FREE && !atomic_get(&TASK->phones[i].active_calls)) {
    162                         TASK->phones[i].busy = IPC_BUSY_CONNECTING;
     161                if (TASK->phones[i].state == IPC_PHONE_HUNGUP && \
     162                    atomic_get(&TASK->phones[i].active_calls) == 0)
     163                        TASK->phones[i].state = IPC_PHONE_FREE;
     164
     165                if (TASK->phones[i].state == IPC_PHONE_FREE) {
     166                        TASK->phones[i].state = IPC_PHONE_CONNECTING;
    163167                        break;
    164168                }
     
    173177static void phone_deallocp(phone_t *phone)
    174178{
    175         ASSERT(phone->busy == IPC_BUSY_CONNECTING);
     179        ASSERT(phone->state == IPC_PHONE_CONNECTING);
    176180        ASSERT(! phone->callee);
    177181       
    178182        /* atomic operation */
    179         phone->busy = IPC_BUSY_FREE;
     183        phone->state = IPC_PHONE_FREE;
    180184}
    181185
     
    201205        phone_t *phone = &TASK->phones[phoneid];
    202206       
    203         ASSERT(phone->busy == IPC_BUSY_CONNECTING);
     207        ASSERT(phone->state == IPC_PHONE_CONNECTING);
    204208        ipc_phone_connect(phone, box);
    205209}
Note: See TracChangeset for help on using the changeset viewer.