/*===========================================================================
                    IMPORTANT NOTICE

            Not to be distributed in source format.

FILE:  bridle_GSMSMS.h

SERVICES:  Bridle'd GSMSMS calls. 

GENERAL DESCRIPTION:
   Contains inlined code that does swi into Supervisor mode and invokes
   appropriate routine.

        Copyright © 2003 QUALCOMM Incorporated.
               All Rights Reserved.
            QUALCOMM Proprietary/GTDR
===========================================================================*/

#ifndef __BRIDLE_GSMSMS_H__
#define __BRIDLE_GSMSMS_H__

#include "OEMGSMSMS_SVC.h"
#include "AEEBridle.h"

/* Subroutine Id to map different functions invoked in Supervisor mode. */
enum {
    BRIDLE_GSMSMS_INIT,
    BRIDLE_GSMSMS_GETSMSMESSAGE,
    BRIDLE_GSMSMS_INJECTMESSAGE,
    BRIDLE_GSMSMS_MAX
};

extern uint32 bridle_oemGSMSMS_swi;

/* inlined functions packbridle_* and unpackbridle_* */

BRIDLE0_VOID(
    OEMGSMSMS_SVC_Init,
    bridle_oemGSMSMS_swi, 
    BRIDLE_GSMSMS_INIT
    )

BRIDLE2_RET(
    boolean, // return value type
    OEMGSMSMS_SVC_GetSMSMessage,
    GSMSMSMessage*, BRIDLE_CHECK_WRITEACCESS, sizeof(GSMSMSMessage),
    byte*, BRIDLE_CHECK_WRITEACCESS, sizeof(byte),
    bridle_oemGSMSMS_swi,
    BRIDLE_GSMSMS_GETSMSMESSAGE
    )

BRIDLE2_VOID(
    OEMGSMSMS_SVC_ProcessMessage,
    const byte *, BRIDLE_CHECK_READACCESS, UNPACKBRIDLE_PARAM_2*sizeof(byte),
    const byte, BRIDLE_CHECK_NONE, 0,
    bridle_oemGSMSMS_swi,
    BRIDLE_GSMSMS_INJECTMESSAGE
    )

#endif // __BRIDLE_GSMSMS_H__
