| #include <apimagic/apimagic.h> |
| #include "apimagic_driver_impl.h" |
| #include "apimagic_errinfo_impl.h" |
| |
| int amgc_record_error( |
| const struct amgc_driver_ctx * dctx, |
| int esyscode, |
| int elibcode, |
| const char * efunction, |
| int eline, |
| unsigned eflags, |
| void * eany) |
| { |
| struct amgc_driver_ctx_impl * ictx; |
| struct amgc_error_info * erri; |
| |
| ictx = amgc_get_driver_ictx(dctx); |
| |
| if (ictx->errinfp == ictx->erricap) |
| return -1; |
| |
| *ictx->errinfp = &ictx->erribuf[ictx->errinfp - ictx->erriptr]; |
| erri = *ictx->errinfp; |
|
|
| erri->euctx = ictx->euctx; |
| erri->eunit = ictx->eunit; |
|
|
| erri->edctx = dctx; |
| erri->esyscode = esyscode; |
| erri->elibcode = elibcode; |
| erri->efunction = efunction; |
| erri->eline = eline; |
| erri->eflags = eflags; |
| erri->eany = eany; |
|
|
| ictx->errinfp++; |
| |
| return -1; |
| } |