POK(kernelpart)
/home/jaouen/pok_official/pok/trunk/kernel/middleware/portsamplingcreate.c
Go to the documentation of this file.
00001 /*
00002  *                               POK header
00003  * 
00004  * The following file is a part of the POK project. Any modification should
00005  * made according to the POK licence. You CANNOT use this file or a part of
00006  * this file is this part of a file for your own project
00007  *
00008  * For more information on the POK licence, please see our LICENCE FILE
00009  *
00010  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
00011  *
00012  *                                      Copyright (c) 2007-2009 POK team 
00013  *
00014  * Created by julien on Thu Jan 15 23:34:13 2009 
00015  */
00016 
00017 
00018 #ifdef POK_NEEDS_PORTS_SAMPLING
00019 
00020 #include <errno.h>
00021 #include <types.h>
00022 #include <core/lockobj.h>
00023 #include <middleware/port.h>
00024 #include <middleware/queue.h>
00025 
00026 extern pok_port_t    pok_ports[POK_CONFIG_NB_PORTS];
00027 
00028 pok_ret_t pok_port_sampling_create (char*                                  name, 
00029                                     const pok_port_size_t                  size, 
00030                                     const pok_port_direction_t             direction,
00031                                     const uint64_t                         refresh,
00032                                     pok_port_id_t*                         id)
00033 {
00034    pok_ret_t ret;
00035    pok_lockobj_attr_t   lockattr;
00036 
00037    ret = pok_port_create (name, size, direction, POK_PORT_KIND_SAMPLING, id);
00038 
00039    if (ret != POK_ERRNO_OK)
00040    {
00041       return ret;
00042    }
00043 
00044    pok_ports[*id].refresh        = refresh;
00045    pok_ports[*id].last_receive   = 0;
00046 
00047    lockattr.kind              = POK_LOCKOBJ_KIND_EVENT;
00048    lockattr.locking_policy    = POK_LOCKOBJ_POLICY_STANDARD;
00049    ret = pok_lockobj_create (&pok_ports[*id].lock, &lockattr);
00050 
00051    return ret;
00052 }
00053 
00054 #endif