112027Sjungma@eit.uni-kl.de#include "copyright.h" 212027Sjungma@eit.uni-kl.de#include "qt.h" 312027Sjungma@eit.uni-kl.de 412027Sjungma@eit.uni-kl.de// static void *qt_sp_bottom_save; 512027Sjungma@eit.uni-kl.de 612027Sjungma@eit.uni-kl.de#ifdef QT_VARGS_DEFAULT 712027Sjungma@eit.uni-kl.de 812027Sjungma@eit.uni-kl.de/* If the stack grows down, `vargs' is a pointer to the lowest 912027Sjungma@eit.uni-kl.de address in the block of arguments. If the stack grows up, it is a 1012027Sjungma@eit.uni-kl.de pointer to the highest address in the block. */ 1112027Sjungma@eit.uni-kl.de 1212027Sjungma@eit.uni-kl.de qt_t * 1312027Sjungma@eit.uni-kl.deqt_vargs (qt_t *sp, int nbytes, void *vargs, 1412027Sjungma@eit.uni-kl.de void *pt, qt_startup_t *startup, 1512027Sjungma@eit.uni-kl.de qt_vuserf_t *vuserf, qt_cleanup_t *cleanup) 1612027Sjungma@eit.uni-kl.de{ 1712027Sjungma@eit.uni-kl.de int i; 1812027Sjungma@eit.uni-kl.de 1912027Sjungma@eit.uni-kl.de sp = QT_VARGS_MD0 (sp, nbytes); 2012027Sjungma@eit.uni-kl.de#ifdef QT_GROW_UP 2112027Sjungma@eit.uni-kl.de for (i=nbytes/sizeof(qt_word_t); i>0; --i) { 2212027Sjungma@eit.uni-kl.de QT_SPUT (QT_VARGS_ADJUST(sp), i, ((qt_word_t *)vargs)[-i]); 2312027Sjungma@eit.uni-kl.de } 2412027Sjungma@eit.uni-kl.de#else 2512027Sjungma@eit.uni-kl.de for (i=nbytes/sizeof(qt_word_t); i>0; --i) { 2612027Sjungma@eit.uni-kl.de QT_SPUT (QT_VARGS_ADJUST(sp), i-1, ((qt_word_t *)vargs)[i-1]); 2712027Sjungma@eit.uni-kl.de } 2812027Sjungma@eit.uni-kl.de#endif 2912027Sjungma@eit.uni-kl.de 3012027Sjungma@eit.uni-kl.de QT_VARGS_MD1 (QT_VADJ(sp)); 3112027Sjungma@eit.uni-kl.de QT_SPUT (QT_VADJ(sp), QT_VARGT_INDEX, pt); 3212027Sjungma@eit.uni-kl.de QT_SPUT (QT_VADJ(sp), QT_VSTARTUP_INDEX, startup); 3312027Sjungma@eit.uni-kl.de QT_SPUT (QT_VADJ(sp), QT_VUSERF_INDEX, vuserf); 3412027Sjungma@eit.uni-kl.de QT_SPUT (QT_VADJ(sp), QT_VCLEANUP_INDEX, cleanup); 3512027Sjungma@eit.uni-kl.de return ((qt_t *)QT_VADJ(sp)); 3612027Sjungma@eit.uni-kl.de} 3712027Sjungma@eit.uni-kl.de#endif /* def QT_VARGS_DEFAULT */ 3812027Sjungma@eit.uni-kl.de 3912027Sjungma@eit.uni-kl.de#ifdef __cplusplus 4012027Sjungma@eit.uni-kl.deextern "C" 4112027Sjungma@eit.uni-kl.de#endif 4212027Sjungma@eit.uni-kl.de void 4312027Sjungma@eit.uni-kl.deqt_null (void) 4412027Sjungma@eit.uni-kl.de{ 4512027Sjungma@eit.uni-kl.de} 4612027Sjungma@eit.uni-kl.de 4712027Sjungma@eit.uni-kl.de#ifdef __cplusplus 4812027Sjungma@eit.uni-kl.deextern "C" 4912027Sjungma@eit.uni-kl.de#endif 5012027Sjungma@eit.uni-kl.de void 5112027Sjungma@eit.uni-kl.deqt_error (void) 5212027Sjungma@eit.uni-kl.de{ 5312027Sjungma@eit.uni-kl.de extern void abort(void); 5412027Sjungma@eit.uni-kl.de 5512027Sjungma@eit.uni-kl.de abort(); 5612027Sjungma@eit.uni-kl.de} 57