Home | History | Annotate | Line # | Download | only in apps
tcc.c revision 1.1.1.1.36.1
      1  1.1.1.1.36.1  christos /*	$NetBSD: tcc.c,v 1.1.1.1.36.1 2019/06/10 22:08:34 christos Exp $	*/
      2           1.1  jakllsch 
      3           1.1  jakllsch /*
      4           1.1  jakllsch  * Test if our calling convention gymnastics actually work
      5           1.1  jakllsch  */
      6           1.1  jakllsch 
      7           1.1  jakllsch #include <efi.h>
      8           1.1  jakllsch #include <efilib.h>
      9           1.1  jakllsch 
     10           1.1  jakllsch #if 0
     11           1.1  jakllsch extern void dump_stack(void);
     12           1.1  jakllsch asm(	".globl	dump_stack\n"
     13           1.1  jakllsch 	"dump_stack:\n"
     14           1.1  jakllsch 	"	movq %rsp, %rdi\n"
     15           1.1  jakllsch 	"	jmp *dump_stack_helper@GOTPCREL(%rip)\n"
     16           1.1  jakllsch 	".size	dump_stack, .-dump_stack");
     17           1.1  jakllsch 
     18           1.1  jakllsch void dump_stack_helper(uint64_t rsp_val)
     19           1.1  jakllsch {
     20           1.1  jakllsch 	uint64_t *rsp = (uint64_t *)rsp_val;
     21           1.1  jakllsch 	int x;
     22           1.1  jakllsch 
     23           1.1  jakllsch 	Print(L"%%rsp: 0x%08x%08x stack:\r\n",
     24           1.1  jakllsch 					(rsp_val & 0xffffffff00000000) >>32,
     25           1.1  jakllsch 					 rsp_val & 0xffffffff);
     26           1.1  jakllsch 	for (x = 0; x < 8; x++) {
     27           1.1  jakllsch 		Print(L"%08x: ", ((uint64_t)rsp) & 0xffffffff);
     28           1.1  jakllsch 		Print(L"%016x ", *rsp++);
     29           1.1  jakllsch 		Print(L"%016x ", *rsp++);
     30           1.1  jakllsch 		Print(L"%016x ", *rsp++);
     31           1.1  jakllsch 		Print(L"%016x\r\n", *rsp++);
     32           1.1  jakllsch 	}
     33           1.1  jakllsch }
     34           1.1  jakllsch #endif
     35           1.1  jakllsch 
     36           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_failure_callback(void)
     37           1.1  jakllsch {
     38           1.1  jakllsch 	return EFI_UNSUPPORTED;
     39           1.1  jakllsch }
     40           1.1  jakllsch 
     41           1.1  jakllsch EFI_STATUS test_failure(void)
     42           1.1  jakllsch {
     43           1.1  jakllsch 	return uefi_call_wrapper(test_failure_callback, 0);
     44           1.1  jakllsch }
     45           1.1  jakllsch 
     46           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call0_callback(void)
     47           1.1  jakllsch {
     48           1.1  jakllsch 	return EFI_SUCCESS;
     49           1.1  jakllsch }
     50           1.1  jakllsch 
     51           1.1  jakllsch EFI_STATUS test_call0(void)
     52           1.1  jakllsch {
     53           1.1  jakllsch 	return uefi_call_wrapper(test_call0_callback, 0);
     54           1.1  jakllsch }
     55           1.1  jakllsch 
     56           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call1_callback(UINT32 a)
     57           1.1  jakllsch {
     58           1.1  jakllsch 	if (a != 0x12345678) {
     59           1.1  jakllsch 		return EFI_LOAD_ERROR;
     60           1.1  jakllsch 	}
     61           1.1  jakllsch 	return EFI_SUCCESS;
     62           1.1  jakllsch }
     63           1.1  jakllsch 
     64           1.1  jakllsch EFI_STATUS test_call1(void)
     65           1.1  jakllsch {
     66           1.1  jakllsch 	return uefi_call_wrapper(test_call1_callback, 1,0x12345678);
     67           1.1  jakllsch }
     68           1.1  jakllsch 
     69           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call2_callback(UINT32 a, UINT32 b)
     70           1.1  jakllsch {
     71           1.1  jakllsch 	if (a != 0x12345678) {
     72           1.1  jakllsch 		return EFI_LOAD_ERROR;
     73           1.1  jakllsch 	}
     74           1.1  jakllsch 	if (b != 0x23456789) {
     75           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
     76           1.1  jakllsch 	}
     77           1.1  jakllsch 	return EFI_SUCCESS;
     78           1.1  jakllsch }
     79           1.1  jakllsch 
     80           1.1  jakllsch EFI_STATUS test_call2(void)
     81           1.1  jakllsch {
     82           1.1  jakllsch 	return uefi_call_wrapper(test_call2_callback, 2,
     83           1.1  jakllsch 		0x12345678, 0x23456789);
     84           1.1  jakllsch }
     85           1.1  jakllsch 
     86           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call3_callback(UINT32 a, UINT32 b,
     87           1.1  jakllsch 	UINT32 c)
     88           1.1  jakllsch {
     89           1.1  jakllsch 	if (a != 0x12345678)
     90           1.1  jakllsch 		return EFI_LOAD_ERROR;
     91           1.1  jakllsch 	if (b != 0x23456789)
     92           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
     93           1.1  jakllsch 	if (c != 0x3456789a)
     94           1.1  jakllsch 		return EFI_UNSUPPORTED;
     95           1.1  jakllsch 	return EFI_SUCCESS;
     96           1.1  jakllsch }
     97           1.1  jakllsch 
     98           1.1  jakllsch EFI_STATUS test_call3(void)
     99           1.1  jakllsch {
    100           1.1  jakllsch 	return uefi_call_wrapper(test_call3_callback, 3,
    101           1.1  jakllsch 		0x12345678, 0x23456789, 0x3456789a);
    102           1.1  jakllsch }
    103           1.1  jakllsch 
    104           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call4_callback(UINT32 a, UINT32 b,
    105           1.1  jakllsch 	UINT32 c, UINT32 d)
    106           1.1  jakllsch {
    107           1.1  jakllsch 	if (a != 0x12345678)
    108           1.1  jakllsch 		return EFI_LOAD_ERROR;
    109           1.1  jakllsch 	if (b != 0x23456789)
    110           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    111           1.1  jakllsch 	if (c != 0x3456789a)
    112           1.1  jakllsch 		return EFI_UNSUPPORTED;
    113           1.1  jakllsch 	if (d != 0x456789ab)
    114           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    115           1.1  jakllsch 
    116           1.1  jakllsch 	return EFI_SUCCESS;
    117           1.1  jakllsch }
    118           1.1  jakllsch 
    119           1.1  jakllsch EFI_STATUS test_call4(void)
    120           1.1  jakllsch {
    121           1.1  jakllsch 	return uefi_call_wrapper(test_call4_callback, 4,
    122           1.1  jakllsch 		0x12345678, 0x23456789, 0x3456789a, 0x456789ab);
    123           1.1  jakllsch }
    124           1.1  jakllsch 
    125           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call5_callback(UINT32 a, UINT32 b,
    126           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e)
    127           1.1  jakllsch {
    128           1.1  jakllsch 	if (a != 0x12345678)
    129           1.1  jakllsch 		return EFI_LOAD_ERROR;
    130           1.1  jakllsch 	if (b != 0x23456789)
    131           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    132           1.1  jakllsch 	if (c != 0x3456789a)
    133           1.1  jakllsch 		return EFI_UNSUPPORTED;
    134           1.1  jakllsch 	if (d != 0x456789ab)
    135           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    136           1.1  jakllsch 	if (e != 0x56789abc)
    137           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    138           1.1  jakllsch 
    139           1.1  jakllsch 	return EFI_SUCCESS;
    140           1.1  jakllsch }
    141           1.1  jakllsch 
    142           1.1  jakllsch EFI_STATUS test_call5(void)
    143           1.1  jakllsch {
    144           1.1  jakllsch 	return uefi_call_wrapper(test_call5_callback, 5,
    145           1.1  jakllsch 		0x12345678, 0x23456789, 0x3456789a, 0x456789ab, 0x56789abc);
    146           1.1  jakllsch }
    147           1.1  jakllsch 
    148           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call6_callback(UINT32 a, UINT32 b,
    149           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e, UINT32 f)
    150           1.1  jakllsch {
    151           1.1  jakllsch 	if (a != 0x12345678)
    152           1.1  jakllsch 		return EFI_LOAD_ERROR;
    153           1.1  jakllsch 	if (b != 0x23456789)
    154           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    155           1.1  jakllsch 	if (c != 0x3456789a)
    156           1.1  jakllsch 		return EFI_UNSUPPORTED;
    157           1.1  jakllsch 	if (d != 0x456789ab)
    158           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    159           1.1  jakllsch 	if (e != 0x56789abc)
    160           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    161           1.1  jakllsch 	if (f != 0x6789abcd)
    162           1.1  jakllsch 		return EFI_NOT_READY;
    163           1.1  jakllsch 
    164           1.1  jakllsch 	return EFI_SUCCESS;
    165           1.1  jakllsch }
    166           1.1  jakllsch 
    167           1.1  jakllsch EFI_STATUS test_call6(void)
    168           1.1  jakllsch {
    169           1.1  jakllsch 	return uefi_call_wrapper(test_call6_callback, 6,
    170           1.1  jakllsch 		0x12345678, 0x23456789, 0x3456789a, 0x456789ab, 0x56789abc,
    171           1.1  jakllsch 		0x6789abcd);
    172           1.1  jakllsch }
    173           1.1  jakllsch 
    174           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call7_callback(UINT32 a, UINT32 b,
    175           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e, UINT32 f, UINT32 g)
    176           1.1  jakllsch {
    177           1.1  jakllsch 	if (a != 0x12345678)
    178           1.1  jakllsch 		return EFI_LOAD_ERROR;
    179           1.1  jakllsch 	if (b != 0x23456789)
    180           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    181           1.1  jakllsch 	if (c != 0x3456789a)
    182           1.1  jakllsch 		return EFI_UNSUPPORTED;
    183           1.1  jakllsch 	if (d != 0x456789ab)
    184           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    185           1.1  jakllsch 	if (e != 0x56789abc)
    186           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    187           1.1  jakllsch 	if (f != 0x6789abcd)
    188           1.1  jakllsch 		return EFI_NOT_READY;
    189           1.1  jakllsch 	if (g != 0x789abcde)
    190           1.1  jakllsch 		return EFI_DEVICE_ERROR;
    191           1.1  jakllsch 
    192           1.1  jakllsch 	return EFI_SUCCESS;
    193           1.1  jakllsch }
    194           1.1  jakllsch 
    195           1.1  jakllsch EFI_STATUS test_call7(void)
    196           1.1  jakllsch {
    197           1.1  jakllsch 	return uefi_call_wrapper(test_call7_callback, 7,
    198           1.1  jakllsch 		0x12345678, 0x23456789, 0x3456789a, 0x456789ab,
    199           1.1  jakllsch 		0x56789abc, 0x6789abcd, 0x789abcde);
    200           1.1  jakllsch }
    201           1.1  jakllsch 
    202           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call8_callback(UINT32 a, UINT32 b,
    203           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e, UINT32 f, UINT32 g, UINT32 h)
    204           1.1  jakllsch {
    205           1.1  jakllsch 	if (a != 0x12345678)
    206           1.1  jakllsch 		return EFI_LOAD_ERROR;
    207           1.1  jakllsch 	if (b != 0x23456789)
    208           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    209           1.1  jakllsch 	if (c != 0x3456789a)
    210           1.1  jakllsch 		return EFI_UNSUPPORTED;
    211           1.1  jakllsch 	if (d != 0x456789ab)
    212           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    213           1.1  jakllsch 	if (e != 0x56789abc)
    214           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    215           1.1  jakllsch 	if (f != 0x6789abcd)
    216           1.1  jakllsch 		return EFI_NOT_READY;
    217           1.1  jakllsch 	if (g != 0x789abcde)
    218           1.1  jakllsch 		return EFI_DEVICE_ERROR;
    219           1.1  jakllsch 	if (h != 0x89abcdef)
    220           1.1  jakllsch 		return EFI_WRITE_PROTECTED;
    221           1.1  jakllsch 
    222           1.1  jakllsch 	return EFI_SUCCESS;
    223           1.1  jakllsch }
    224           1.1  jakllsch 
    225           1.1  jakllsch EFI_STATUS test_call8(void)
    226           1.1  jakllsch {
    227           1.1  jakllsch 	return uefi_call_wrapper(test_call8_callback, 8,
    228           1.1  jakllsch 		0x12345678,
    229           1.1  jakllsch 		0x23456789,
    230           1.1  jakllsch 		0x3456789a,
    231           1.1  jakllsch 		0x456789ab,
    232           1.1  jakllsch 		0x56789abc,
    233           1.1  jakllsch 		0x6789abcd,
    234           1.1  jakllsch 		0x789abcde,
    235           1.1  jakllsch 		0x89abcdef);
    236           1.1  jakllsch }
    237           1.1  jakllsch 
    238           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call9_callback(UINT32 a, UINT32 b,
    239           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e, UINT32 f, UINT32 g, UINT32 h, UINT32 i)
    240           1.1  jakllsch {
    241           1.1  jakllsch 	if (a != 0x12345678)
    242           1.1  jakllsch 		return EFI_LOAD_ERROR;
    243           1.1  jakllsch 	if (b != 0x23456789)
    244           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    245           1.1  jakllsch 	if (c != 0x3456789a)
    246           1.1  jakllsch 		return EFI_UNSUPPORTED;
    247           1.1  jakllsch 	if (d != 0x456789ab)
    248           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    249           1.1  jakllsch 	if (e != 0x56789abc)
    250           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    251           1.1  jakllsch 	if (f != 0x6789abcd)
    252           1.1  jakllsch 		return EFI_NOT_READY;
    253           1.1  jakllsch 	if (g != 0x789abcde)
    254           1.1  jakllsch 		return EFI_DEVICE_ERROR;
    255           1.1  jakllsch 	if (h != 0x89abcdef)
    256           1.1  jakllsch 		return EFI_WRITE_PROTECTED;
    257           1.1  jakllsch 	if (i != 0x9abcdef0)
    258           1.1  jakllsch 		return EFI_OUT_OF_RESOURCES;
    259           1.1  jakllsch 
    260           1.1  jakllsch 	return EFI_SUCCESS;
    261           1.1  jakllsch }
    262           1.1  jakllsch 
    263           1.1  jakllsch EFI_STATUS test_call9(void)
    264           1.1  jakllsch {
    265           1.1  jakllsch 	return uefi_call_wrapper(test_call9_callback, 9,
    266           1.1  jakllsch 		0x12345678,
    267           1.1  jakllsch 		0x23456789,
    268           1.1  jakllsch 		0x3456789a,
    269           1.1  jakllsch 		0x456789ab,
    270           1.1  jakllsch 		0x56789abc,
    271           1.1  jakllsch 		0x6789abcd,
    272           1.1  jakllsch 		0x789abcde,
    273           1.1  jakllsch 		0x89abcdef,
    274           1.1  jakllsch 		0x9abcdef0);
    275           1.1  jakllsch }
    276           1.1  jakllsch 
    277           1.1  jakllsch extern EFI_STATUS test_call10(void);
    278           1.1  jakllsch EFI_STATUS EFI_FUNCTION test_call10_callback(UINT32 a, UINT32 b,
    279           1.1  jakllsch 	UINT32 c, UINT32 d, UINT32 e, UINT32 f, UINT32 g, UINT32 h, UINT32 i,
    280           1.1  jakllsch 	UINT32 j)
    281           1.1  jakllsch {
    282           1.1  jakllsch 	if (a != 0x12345678)
    283           1.1  jakllsch 		return EFI_LOAD_ERROR;
    284           1.1  jakllsch 	if (b != 0x23456789)
    285           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    286           1.1  jakllsch 	if (c != 0x3456789a)
    287           1.1  jakllsch 		return EFI_UNSUPPORTED;
    288           1.1  jakllsch 	if (d != 0x456789ab)
    289           1.1  jakllsch 		return EFI_BAD_BUFFER_SIZE;
    290           1.1  jakllsch 	if (e != 0x56789abc)
    291           1.1  jakllsch 		return EFI_BUFFER_TOO_SMALL;
    292           1.1  jakllsch 	if (f != 0x6789abcd)
    293           1.1  jakllsch 		return EFI_NOT_READY;
    294           1.1  jakllsch 	if (g != 0x789abcde)
    295           1.1  jakllsch 		return EFI_DEVICE_ERROR;
    296           1.1  jakllsch 	if (h != 0x89abcdef)
    297           1.1  jakllsch 		return EFI_WRITE_PROTECTED;
    298           1.1  jakllsch 	if (i != 0x9abcdef0)
    299           1.1  jakllsch 		return EFI_OUT_OF_RESOURCES;
    300           1.1  jakllsch 	if (j != 0xabcdef01)
    301           1.1  jakllsch 		return EFI_VOLUME_CORRUPTED;
    302           1.1  jakllsch 
    303           1.1  jakllsch 	return EFI_SUCCESS;
    304           1.1  jakllsch }
    305           1.1  jakllsch 
    306           1.1  jakllsch EFI_STATUS test_call10(void)
    307           1.1  jakllsch {
    308           1.1  jakllsch 	return uefi_call_wrapper(test_call10_callback, 10,
    309           1.1  jakllsch 		0x12345678,
    310           1.1  jakllsch 		0x23456789,
    311           1.1  jakllsch 		0x3456789a,
    312           1.1  jakllsch 		0x456789ab,
    313           1.1  jakllsch 		0x56789abc,
    314           1.1  jakllsch 		0x6789abcd,
    315           1.1  jakllsch 		0x789abcde,
    316           1.1  jakllsch 		0x89abcdef,
    317           1.1  jakllsch 		0x9abcdef0,
    318           1.1  jakllsch 		0xabcdef01);
    319           1.1  jakllsch }
    320           1.1  jakllsch 
    321           1.1  jakllsch EFI_STATUS
    322           1.1  jakllsch efi_main (EFI_HANDLE *image, EFI_SYSTEM_TABLE *systab)
    323           1.1  jakllsch {
    324           1.1  jakllsch 	EFI_STATUS rc = EFI_SUCCESS;
    325           1.1  jakllsch 
    326           1.1  jakllsch 	InitializeLib(image, systab);
    327           1.1  jakllsch 	PoolAllocationType = 2; /* klooj */
    328           1.1  jakllsch 
    329  1.1.1.1.36.1  christos #ifdef __x86_64__
    330           1.1  jakllsch 	__asm__ volatile("out %0,%1" : : "a" ((uint8_t)0x14), "dN" (0x80));
    331  1.1.1.1.36.1  christos #endif
    332           1.1  jakllsch 
    333           1.1  jakllsch 	Print(L"Hello\r\n");
    334           1.1  jakllsch 	rc = test_failure();
    335           1.1  jakllsch 	if (EFI_ERROR(rc)) {
    336           1.1  jakllsch 		Print(L"Returning Failure works\n");
    337           1.1  jakllsch 	} else {
    338           1.1  jakllsch 		Print(L"Returning failure doesn't work.\r\n");
    339           1.1  jakllsch 		Print(L"%%rax was 0x%016x, should have been 0x%016x\n",
    340           1.1  jakllsch 			rc, EFI_UNSUPPORTED);
    341           1.1  jakllsch 		return EFI_INVALID_PARAMETER;
    342           1.1  jakllsch 	}
    343           1.1  jakllsch 
    344           1.1  jakllsch 	rc = test_call0();
    345           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    346           1.1  jakllsch 		Print(L"0 args works just fine here.\r\n");
    347           1.1  jakllsch 	} else {
    348           1.1  jakllsch 		Print(L"0 args failed: 0x%016x\n", rc);
    349           1.1  jakllsch 		return rc;
    350           1.1  jakllsch 	}
    351           1.1  jakllsch 
    352           1.1  jakllsch 	rc = test_call1();
    353           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    354           1.1  jakllsch 		Print(L"1 arg works just fine here.\r\n");
    355           1.1  jakllsch 	} else {
    356           1.1  jakllsch 		Print(L"1 arg failed: 0x%016x\n", rc);
    357           1.1  jakllsch 		return rc;
    358           1.1  jakllsch 	}
    359           1.1  jakllsch 
    360           1.1  jakllsch 	rc = test_call2();
    361           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    362           1.1  jakllsch 		Print(L"2 args works just fine here.\r\n");
    363           1.1  jakllsch 	} else {
    364           1.1  jakllsch 		Print(L"2 args failed: 0x%016x\n", rc);
    365           1.1  jakllsch 		return rc;
    366           1.1  jakllsch 	}
    367           1.1  jakllsch 
    368           1.1  jakllsch 	rc = test_call3();
    369           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    370           1.1  jakllsch 		Print(L"3 args works just fine here.\r\n");
    371           1.1  jakllsch 	} else {
    372           1.1  jakllsch 		Print(L"3 args failed: 0x%016x\n", rc);
    373           1.1  jakllsch 		return rc;
    374           1.1  jakllsch 	}
    375           1.1  jakllsch 
    376           1.1  jakllsch 	rc = test_call4();
    377           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    378           1.1  jakllsch 		Print(L"4 args works just fine here.\r\n");
    379           1.1  jakllsch 	} else {
    380           1.1  jakllsch 		Print(L"4 args failed: 0x%016x\n", rc);
    381           1.1  jakllsch 		return rc;
    382           1.1  jakllsch 	}
    383           1.1  jakllsch 
    384           1.1  jakllsch 	rc = test_call5();
    385           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    386           1.1  jakllsch 		Print(L"5 args works just fine here.\r\n");
    387           1.1  jakllsch 	} else {
    388           1.1  jakllsch 		Print(L"5 args failed: 0x%016x\n", rc);
    389           1.1  jakllsch 		return rc;
    390           1.1  jakllsch 	}
    391           1.1  jakllsch 
    392           1.1  jakllsch 	rc = test_call6();
    393           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    394           1.1  jakllsch 		Print(L"6 args works just fine here.\r\n");
    395           1.1  jakllsch 	} else {
    396           1.1  jakllsch 		Print(L"6 args failed: 0x%016x\n", rc);
    397           1.1  jakllsch 		return rc;
    398           1.1  jakllsch 	}
    399           1.1  jakllsch 
    400           1.1  jakllsch 	rc = test_call7();
    401           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    402           1.1  jakllsch 		Print(L"7 args works just fine here.\r\n");
    403           1.1  jakllsch 	} else {
    404           1.1  jakllsch 		Print(L"7 args failed: 0x%016x\n", rc);
    405           1.1  jakllsch 		return rc;
    406           1.1  jakllsch 	}
    407           1.1  jakllsch 
    408           1.1  jakllsch 	rc = test_call8();
    409           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    410           1.1  jakllsch 		Print(L"8 args works just fine here.\r\n");
    411           1.1  jakllsch 	} else {
    412           1.1  jakllsch 		Print(L"8 args failed: 0x%016x\n", rc);
    413           1.1  jakllsch 		return rc;
    414           1.1  jakllsch 	}
    415           1.1  jakllsch 
    416           1.1  jakllsch 	rc = test_call9();
    417           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    418           1.1  jakllsch 		Print(L"9 args works just fine here.\r\n");
    419           1.1  jakllsch 	} else {
    420           1.1  jakllsch 		Print(L"9 args failed: 0x%016x\n", rc);
    421           1.1  jakllsch 		return rc;
    422           1.1  jakllsch 	}
    423           1.1  jakllsch 
    424           1.1  jakllsch 	rc = test_call10();
    425           1.1  jakllsch 	if (!EFI_ERROR(rc)) {
    426           1.1  jakllsch 		Print(L"10 args works just fine here.\r\n");
    427           1.1  jakllsch 	} else {
    428           1.1  jakllsch 		Print(L"10 args failed: 0x%016x\n", rc);
    429           1.1  jakllsch 		return rc;
    430           1.1  jakllsch 	}
    431           1.1  jakllsch 
    432           1.1  jakllsch 	return rc;
    433           1.1  jakllsch }
    434