WSJT-X/lib/shmem.f90

46 lines
1.5 KiB
Fortran

module shmem
! external routines wrapping the Qt QSharedMemory class
interface
function shmem_create (size) bind(C, name="shmem_create")
use iso_c_binding, only: c_bool, c_int
logical(c_bool) :: shmem_create
integer(c_int), value, intent(in) :: size
end function shmem_create
subroutine shmem_setkey (key) bind(C, name="shmem_setkey")
use iso_c_binding, only: c_bool, c_char
character(kind=c_char), intent(in) :: key(*)
end subroutine shmem_setkey
function shmem_attach () bind(C, name="shmem_attach")
use iso_c_binding, only: c_bool
logical(c_bool) :: shmem_attach
end function shmem_attach
function shmem_address() bind(C, name="shmem_address")
use, intrinsic :: iso_c_binding, only: c_ptr
type(c_ptr) :: shmem_address
end function shmem_address
function shmem_size() bind(C, name="shmem_size")
use, intrinsic :: iso_c_binding, only: c_int
integer(c_int) :: shmem_size
end function shmem_size
function shmem_lock () bind(C, name="shmem_lock")
use iso_c_binding, only: c_bool
logical(c_bool) :: shmem_lock
end function shmem_lock
function shmem_unlock () bind(C, name="shmem_unlock")
use iso_c_binding, only: c_bool
logical(c_bool) :: shmem_unlock
end function shmem_unlock
function shmem_detach () bind(C, name="shmem_detach")
use iso_c_binding, only: c_bool
logical(c_bool) :: shmem_detach
end function shmem_detach
end interface
end module shmem