code: def _dposv(A, b, lower):
      if A.shape[0] != A.shape[1]:
          return -11
      if A.shape[0] != b.shape[0]:
          return -12
  
      # dposv uses Fortran-layout arrays. Because we use C-layout arrays, we will
      # invert the meaning of 'lower' and 'trans', and the function will work fine.
      # We also need to swap index orders
      uplo = __uplo_U if lower else __uplo_L
      narr = np.array([A.shape[0]], dtype=np.intc)
      n_p = __ffi.from_buffer(narr)
      nrhs = np.ones(1, dtype=np.intc)
      nrhs_p = __ffi.from_buffer(nrhs)
      info = np.zeros(1, dtype=np.intc)
      info_p = __ffi.from_buffer(info)
  
      __dposv(
          __ffi.from_buffer(uplo),
          n_p,
          nrhs_p,
          __ffi.from_buffer(A),
          n_p,
          __ffi.from_buffer(b),
          n_p,
          info_p,
      )
  
      _ref_sink(narr, n_p, nrhs, nrhs_p, info, info_p)
  
      return info[0]
  
imports: import numpy
  import cffi
  import numba
  from numba.extending import get_cython_function_address
label_desc: Use image node_id 2 for calling a global function with example usage: _dposv(A, b, lower) and returns: info, unknown, unknown