beach_kernel_get_build_info Function

public function beach_kernel_get_build_info(buffer_ptr, buffer_capacity, length_ptr) result(status) bind(C, name='beach_kernel_get_build_info'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: buffer_ptr
integer(kind=c_int), value :: buffer_capacity
type(c_ptr), value :: length_ptr

Return Value integer(kind=c_int)


Source Code

  integer(c_int) function beach_kernel_get_build_info(buffer_ptr, buffer_capacity, length_ptr) &
    bind(C, name='beach_kernel_get_build_info') result(status)
    type(c_ptr), value :: buffer_ptr, length_ptr
    integer(c_int), value :: buffer_capacity
    integer(c_int), pointer :: text_length
    integer :: required_length

    if (.not. c_associated(length_ptr)) then
      status = beach_kernel_invalid_argument
      return
    end if
    call c_f_pointer(length_ptr, text_length)
    required_length = len(beach_build_info)
    text_length = int(required_length, c_int)
    if (.not. c_associated(buffer_ptr) .or. buffer_capacity <= int(required_length, c_int)) then
      status = beach_kernel_invalid_argument
      return
    end if

    call copy_text_to_c_buffer(beach_build_info, required_length, buffer_ptr, buffer_capacity)
    status = beach_kernel_ok
  end function beach_kernel_get_build_info