Tato funkce (stejně jako rpnproc_listjob() a rpnproc_listone()) nepatří do skupiny funkcí zabezpečujících provádění programu. Slouží k převodu textového tvaru programu (viz "mnemonika" v tabulce instrukcí) na binární.
První dva argumenty __varnump a __lblnump jsou pointery na proměnné, do kterých jsou uloženy počty (nejvyšší index + 1) proměnných a návěští užívaných programem přímo. Proměnné a návěští adresované nepřímo nemohou být, pochopitelně, do tohoto počtu zahrnuty. Pokud tedy program používá nepřímou adresaci, je třeba požadavky na množství proměnných a návěští (zadávaných funkcím rpnproc_memsize() a rpnproc_initial()) zohlednit, nebo použít makro Rpnprocinitlimit() (viz header rpnproc.h).
Jednoduchou "fintou" lze dosáhnout nezávislosti konečného počtu proměnných na použití jejich nepřímé adresace: Nechť proměnné použité pro nepřímou adresaci mají nejvyšší čísla. Jinak řečeno, nepřímo adresovaná oblast proměnných bude v oblasti 000 a výše.
Další argument je pointer na callback funkci, která zprostředkuje funkci rpnproc_makejob():
Detailní popis uživatelské funkce rpnprocmkjcb_t je zde.
Poslední argument __userdata jsou uživatelská data pro callback funkci. V podstatě libovolné číslo, které má vrstva "RPNPROC" předat voláním callback funkce.
Návratovými hodnotami jsou příslušné konstanty z headeru rpnproc.h. Jejich významy ozřejmuje následující tabulka.
Název | Význam |
---|---|
RPNPROC_MAKEJOB_OK | Není co dodat, lépe to dopadnout nemohlo. |
RPNPROC_MAKEJOB_NUMBER | Nesedí počet parametrů. |
RPNPROC_MAKEJOB_INSTR | Chyba při určení instrukce. |
RPNPROC_MAKEJOB_PARAM | Chybný parametr. |
RPNPROC_MAKEJOB_STORE | Neznámá velikost (wide) parametru. |
RPNPROC_MAKEJOB_MEMORY | Nebyl uspokojen požadavek na paměť. |
Typ rpnprocmkjcb_t je popsán zde.