source: rtems/cpukit/librpc/src/rpc/rtems_rpc.c @ f26145b

4.104.114.84.95
Last change on this file since f26145b was b2b143f4, checked in by Joel Sherrill <joel.sherrill@…>, on 03/05/04 at 17:58:51

2004-03-05 Joel Sherrill <joel@…>

  • libblock/src/bdbuf.c, libblock/src/ramdisk.c, libcsupport/src/newlibc.c, libcsupport/src/sync.c, libmisc/cpuuse/cpuuse.c, libmisc/monitor/mon-symbols.c, libmisc/shell/cmds.c, libmisc/shell/shell.c, libnetworking/kern/kern_sysctl.c, libnetworking/lib/ftpfs.c, libnetworking/lib/tftpDriver.c, libnetworking/libc/gethostbydns.c, libnetworking/libc/gethostbyht.c, libnetworking/libc/gethostnamadr.c, libnetworking/libc/getnetbyht.c, libnetworking/libc/getnetnamadr.c, libnetworking/libc/inet_addr.c, libnetworking/libc/linkaddr.c, libnetworking/libc/map_v4v6.c, libnetworking/libc/ns_print.c, libnetworking/libc/ns_ttl.c, libnetworking/libc/nsap_addr.c, libnetworking/libc/rcmd.c, libnetworking/libc/res_debug.c, libnetworking/libc/res_mkupdate.c, libnetworking/libc/res_query.c, libnetworking/libc/res_send.c, libnetworking/libc/res_update.c, libnetworking/net/radix.c, libnetworking/rtems/mkrootfs.c, librpc/src/rpc/clnt_perror.c, librpc/src/rpc/rtems_rpc.c, librpc/src/rpc/svc.c, sapi/include/confdefs.h, score/macros/rtems/score/chain.inl, score/src/objectidtoname.c:
  • Property mode set to 100644
File size: 1.2 KB
Line 
1/*
2 * RTEMS multi-tasking support
3 *
4 * $Id$
5 */
6
7#include <rpc/rpc.h>
8#include <rtems.h>
9#include <stdlib.h>
10
11/*
12 * RPC variables for single-thread
13 */
14static struct _rtems_rpc_task_variables rpc_default = {
15        -1,             /* svc_maxfd */
16};
17
18/*
19 * RPC values for initializing a new per-task set of variables
20 */
21static const struct _rtems_rpc_task_variables rpc_init = {
22        -1,             /* svc_maxfd */
23};
24
25/*
26 * Per-task pointer to RPC data
27 */
28struct _rtems_rpc_task_variables *rtems_rpc_task_variables = &rpc_default;
29
30/*
31 * Set up per-task RPC variables
32 */
33int rtems_rpc_task_init (void)
34{
35        rtems_status_code sc;
36        struct _rtems_rpc_task_variables *tvp;
37
38        if (rtems_rpc_task_variables == &rpc_default) {
39                tvp = malloc (sizeof *tvp);
40                if (tvp == NULL)
41                        return RTEMS_NO_MEMORY;
42                /*
43                 * FIXME: Should have destructor which cleans up
44                 * all RPC stuff:
45                 *      - Close all files
46                 *      - Go through and free linked list elements
47                 *      - Free other allocated memory (e.g. clnt_perror_buf)
48                 */
49                sc = rtems_task_variable_add (
50                        RTEMS_SELF, (void *)&rtems_rpc_task_variables, NULL);
51                if (sc != RTEMS_SUCCESSFUL) {
52                        free (tvp);
53                        return sc;
54                }
55                *tvp = rpc_init;
56                rtems_rpc_task_variables = tvp;
57        }
58        return RTEMS_SUCCESSFUL;
59}
Note: See TracBrowser for help on using the repository browser.