Ignore:
File:
1 edited

Legend:

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

    r82d515e9 r48bcf49  
    137137#include <mm/slab.h>
    138138
     139/** Find call_t * in call table according to callid.
     140 *
     141 * @todo Some speedup (hash table?)
     142 *
     143 * @param callid Userspace hash of the call. Currently it is the call structure
     144 *               kernel address.
     145 *
     146 * @return NULL on not found, otherwise pointer to the call structure.
     147 *
     148 */
     149call_t *get_call(sysarg_t callid)
     150{
     151        call_t *result = NULL;
     152       
     153        irq_spinlock_lock(&TASK->answerbox.lock, true);
     154       
     155        list_foreach(TASK->answerbox.dispatched_calls, ab_link, call_t, call) {
     156                if ((sysarg_t) call == callid) {
     157                        result = call;
     158                        break;
     159                }
     160        }
     161       
     162        irq_spinlock_unlock(&TASK->answerbox.lock, true);
     163        return result;
     164}
     165
    139166static bool phone_reclaim(kobject_t *kobj)
    140167{
     
    153180{
    154181        phone_t *phone = (phone_t *) arg;
    155         slab_free(phone_cache, phone);
     182        slab_free(phone_slab, phone);
    156183}
    157184
     
    173200        cap_handle_t handle = cap_alloc(task);
    174201        if (handle >= 0) {
    175                 phone_t *phone = slab_alloc(phone_cache, FRAME_ATOMIC);
     202                phone_t *phone = slab_alloc(phone_slab, FRAME_ATOMIC);
    176203                if (!phone) {
    177204                        cap_free(TASK, handle);
     
    181208                if (!kobject) {
    182209                        cap_free(TASK, handle);
    183                         slab_free(phone_cache, phone);
     210                        slab_free(phone_slab, phone);
    184211                        return ENOMEM;
    185212                }
Note: See TracChangeset for help on using the changeset viewer.