diff -r 000000000000 -r d0f3a028347a isolationserver/messagequeue/src/msgqdelete.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/isolationserver/messagequeue/src/msgqdelete.c Tue Feb 02 01:10:06 2010 +0200 @@ -0,0 +1,58 @@ +/** + * @file MsgQDelete.cpp + * Description: Source file for MsgQLib's MsgQDelete API + * Copyright (c) 2007 Nokia Corporation. +* All rights reserved. +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* Redistributions of source code must retain the above copyright notice, this list +* of conditions and the following disclaimer.Redistributions in binary form must +* reproduce the above copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of the Nokia Corporation nor the names of its contributors may be used +* to endorse or promote products derived from this software without specific prior written +* permission. +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include +#include + + +/******************************************************************************* +* MsgQDelete (qName, err) +* Description: Function for deleting a message queue +********************************************************************************/ + +EXPORT_C int MsgQDelete(ULONG qName, int* err) +{ + int qId; + + if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */ )) >=0 ) { + + if (msgctl(qId,IPC_RMID,0) == 0) { + *err = OK; + return (OK); + } + else { + *err = errno; + } + + } + else { + *err = KMsgQLibQIdErr; + } + + return(ERROR); +} +