X-Git-Url: https://git.ti.com/gitweb?p=ipc%2Fipcdev.git;a=blobdiff_plain;f=linux%2Fsrc%2Fapi%2FNameServer.c;h=525dccedc53a71f2be1f711ff2a038f35d16015e;hp=84047f01d2bb3e603de43b1cd92d59e4acd366c5;hb=5999db791b8ad43b6bcd79dfd05ab5aa81140c19;hpb=29fe97980aeba0e5914edbd126f47b569a20691a diff --git a/linux/src/api/NameServer.c b/linux/src/api/NameServer.c index 84047f0..525dcce 100644 --- a/linux/src/api/NameServer.c +++ b/linux/src/api/NameServer.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Texas Instruments Incorporated + * Copyright (c) 2012-2014, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,8 +49,9 @@ #include #include <_lad.h> -static Bool verbose = FALSE; - +/* traces in this file are controlled via _NameServer_verbose */ +Bool _NameServer_verbose = FALSE; +#define verbose _NameServer_verbose /* * The NameServer_*() APIs are reproduced here. These versions are just @@ -216,6 +217,109 @@ NameServer_Handle NameServer_create(String name, return rsp.handle; } +Ptr NameServer_add(NameServer_Handle nsHandle, String name, Ptr buf, + UInt32 len) +{ + Int status; + LAD_ClientHandle clHandle; + struct LAD_CommandObj cmd; + union LAD_ResponseObj rsp; + + clHandle = LAD_findHandle(); + if (clHandle == LAD_MAXNUMCLIENTS) { + PRINTVERBOSE1( + "NameServer_add: can't find connection to daemon for pid %d\n", + getpid()) + + return NULL; + } + + cmd.cmd = LAD_NAMESERVER_ADD; + cmd.clientId = clHandle; + cmd.args.add.handle = nsHandle; + strncpy(cmd.args.add.name, name, LAD_MAXENTRYNAMELEN); + cmd.args.add.len = len; + + if (buf != NULL) { + memcpy(cmd.args.add.buf, buf, len); + } + + if ((status = LAD_putCommand(&cmd)) != LAD_SUCCESS) { + PRINTVERBOSE1( + "NameServer_add: sending LAD command failed, status=%d\n", + status) + return NULL; + } + + if ((status = LAD_getResponse(clHandle, &rsp)) != LAD_SUCCESS) { + PRINTVERBOSE1( + "NameServer_add: no LAD response, status=%d\n", status) + return NULL; + } + + PRINTVERBOSE1( + "NameServer_add: got LAD response for client %d\n", clHandle) + + return rsp.entryPtr; +} + +Int NameServer_get(NameServer_Handle nsHandle, String name, Ptr buf, + UInt32 * len, UInt16 procId[]) +{ + Int status; + LAD_ClientHandle clHandle; + struct LAD_CommandObj cmd; + union LAD_ResponseObj rsp; + + clHandle = LAD_findHandle(); + if (clHandle == LAD_MAXNUMCLIENTS) { + PRINTVERBOSE1( + "NameServer_get: can't find connection to daemon for pid %d\n", + getpid()) + + return NameServer_E_RESOURCE; + } + + cmd.cmd = LAD_NAMESERVER_GET; + cmd.clientId = clHandle; + cmd.args.get.handle = nsHandle; + strncpy(cmd.args.get.name, name, LAD_MAXENTRYNAMELEN); + if (procId != NULL) { + memcpy(cmd.args.get.procId, procId, + sizeof(UInt16) * MultiProc_MAXPROCESSORS); + } + else { + cmd.args.get.procId[0] = (UInt16)-1; + } + + cmd.args.get.len = *len; + + if ((status = LAD_putCommand(&cmd)) != LAD_SUCCESS) { + PRINTVERBOSE1( + "NameServer_get: sending LAD command failed, status=%d\n", + status) + return NameServer_E_FAIL; + } + + if ((status = LAD_getResponse(clHandle, &rsp)) != LAD_SUCCESS) { + PRINTVERBOSE1("NameServer_get: no LAD response, status=%d\n", + status) + return NameServer_E_FAIL; + } + + *len = rsp.get.len; + if (rsp.get.buf != NULL) { + memcpy(buf, rsp.get.buf, *len); + } + + status = rsp.status; + + PRINTVERBOSE1("NameServer_get: got LAD response for client %d\n", + clHandle) + + return status; +} + Ptr NameServer_addUInt32(NameServer_Handle nsHandle, String name, UInt32 value) { Int status; @@ -235,7 +339,7 @@ Ptr NameServer_addUInt32(NameServer_Handle nsHandle, String name, UInt32 value) cmd.cmd = LAD_NAMESERVER_ADDUINT32; cmd.clientId = clHandle; cmd.args.addUInt32.handle = nsHandle; - strncpy(cmd.args.addUInt32.name, name, NameServer_Params_MAXNAMELEN); + strncpy(cmd.args.addUInt32.name, name, LAD_MAXENTRYNAMELEN); cmd.args.addUInt32.val = value; if ((status = LAD_putCommand(&cmd)) != LAD_SUCCESS) { @@ -278,7 +382,7 @@ Int NameServer_getUInt32(NameServer_Handle nsHandle, String name, Ptr buf, cmd.cmd = LAD_NAMESERVER_GETUINT32; cmd.clientId = clHandle; cmd.args.getUInt32.handle = nsHandle; - strncpy(cmd.args.getUInt32.name, name, NameServer_Params_MAXNAMELEN); + strncpy(cmd.args.getUInt32.name, name, LAD_MAXENTRYNAMELEN); if (procId != NULL) { memcpy(cmd.args.getUInt32.procId, procId, sizeof(UInt16) * MultiProc_MAXPROCESSORS); @@ -329,7 +433,7 @@ Int NameServer_remove(NameServer_Handle nsHandle, String name) cmd.cmd = LAD_NAMESERVER_REMOVE; cmd.clientId = clHandle; cmd.args.remove.handle = nsHandle; - strncpy(cmd.args.remove.name, name, NameServer_Params_MAXNAMELEN); + strncpy(cmd.args.remove.name, name, LAD_MAXENTRYNAMELEN); if ((status = LAD_putCommand(&cmd)) != LAD_SUCCESS) { PRINTVERBOSE1(