Changeset f9061b4 in mainline for uspace


Ignore:
Timestamp:
2011-05-16T13:38:04Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4e1a2f5
Parents:
e0f52bf
Message:

add kernel event notification masking (currently used only for EVENT_KLOG)
improve kernel event notification API

Location:
uspace
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/klog/klog.c

    re0f52bf rf9061b4  
    7474                fsync(fileno(log));
    7575        }
     76       
     77        event_unmask(EVENT_KLOG);
    7678}
    7779
     
    111113        }
    112114       
    113         rc = event_subscribe(EVENT_KLOG, 0);
    114         if (rc != EOK) {
    115                 fprintf(stderr, "%s: Unable to register klog notifications\n",
    116                     NAME);
    117                 return rc;
    118         }
    119        
    120115        log = fopen(LOG_FNAME, "a");
    121116        if (log == NULL)
     
    124119       
    125120        async_set_interrupt_received(interrupt_received);
     121        rc = event_subscribe(EVENT_KLOG, 0);
     122        if (rc != EOK) {
     123                fclose(log);
     124                fprintf(stderr, "%s: Unable to register klog notifications\n",
     125                    NAME);
     126                return rc;
     127        }
     128       
     129        event_unmask(EVENT_KLOG);
     130       
    126131        klog_update();
    127132        async_manager();
  • uspace/lib/c/generic/event.c

    re0f52bf rf9061b4  
    4141#include <kernel/ipc/event_types.h>
    4242
    43 /** Subscribe for event notifications.
     43/** Subscribe event notifications.
    4444 *
    45  * @param evno   Event number.
    46  * @param method Use this method for notifying me.
     45 * @param evno    Event type to subscribe.
     46 * @param imethod Use this interface and method for notifying me.
    4747 *
    4848 * @return Value returned by the kernel.
     49 *
    4950 */
    50 int event_subscribe(event_type_t e, sysarg_t method)
     51int event_subscribe(event_type_t evno, sysarg_t imethod)
    5152{
    52         return __SYSCALL2(SYS_EVENT_SUBSCRIBE, (sysarg_t) e, (sysarg_t) method);
     53        return __SYSCALL2(SYS_EVENT_SUBSCRIBE, (sysarg_t) evno,
     54            (sysarg_t) imethod);
     55}
     56
     57/** Unmask event notifications.
     58 *
     59 * @param evno Event type to unmask.
     60 *
     61 * @return Value returned by the kernel.
     62 *
     63 */
     64int event_unmask(event_type_t evno)
     65{
     66        return __SYSCALL1(SYS_EVENT_UNMASK, (sysarg_t) evno);
    5367}
    5468
  • uspace/lib/c/include/event.h

    re0f52bf rf9061b4  
    3939
    4040extern int event_subscribe(event_type_t, sysarg_t);
     41extern int event_unmask(event_type_t);
    4142
    4243#endif
Note: See TracChangeset for help on using the changeset viewer.