menuconfig SMEM
	bool  "SMEM (Shared Memory mamanger) support"

if SMEM

config SANDBOX_SMEM
    bool "Sandbox Shared Memory Manager (SMEM)"
    depends on SANDBOX && DM
    help
      enable SMEM support for sandbox. This is an emulation of a real SMEM
      manager.
      The sandbox driver allocates a shared memory from the heap and
      initialzies it on start.

config MSM_SMEM
    bool "Qualcomm Shared Memory Manager (SMEM)"
    depends on DM
    depends on ARCH_SNAPDRAGON
    help
      Enable support for the Qualcomm Shared Memory Manager.
      The driver provides an interface to items in a heap shared among all
      processors in a Qualcomm platform.

endif # menu "SMEM Support"
