Esempio n. 1
0
inline double
bar (double arg)
{
  foo (arg);
  __builtin_return (__builtin_apply ((void (*)()) foo,
				     __builtin_apply_args (), 16));
}
Esempio n. 2
0
void *foo (void **args)
{
  void *argcookie = &args[1];

  __builtin_return (__builtin_apply (args[0], &argcookie,
				     2 * sizeof (void *)));
}
Esempio n. 3
0
static void *
funcall (char **stringp)
{
  void *args[strlen (*stringp)], **ap = args;
  void *argcookie = &args[1];

  do
    {
      /* Evaluate the next token.  */
      *ap++ = eval (stringp);

      /* Whitespace is irrelevant.  */
      while (isspace (**stringp))
	++*stringp;

      /* Terminate at closing paren or end of line.  */
    } while (**stringp != '\0' && **stringp != ')');
  if (**stringp != '\0')
    /* Swallow closing paren.  */
    ++*stringp;

  if (args[0] == NULL)
    {
      static const char unknown[] = "Unknown function\n";
      write (1, unknown, sizeof unknown - 1);
      return NULL;
    }

  /* Do it to it.  */
  __builtin_return (__builtin_apply (args[0],
				     &argcookie,
				     (char *) ap - (char *) &args[1]));
}
Esempio n. 4
0
// gcc very specific stuff here...
void csgl_call_call()
{
    void* data = __builtin_apply_args();
    struct CALLINFO info;
    
    if(source == NULL)
        csgl_assert_throw("csgl_call not properly initialized...");
    
    info = source();
    if(info.function == NULL)
        csgl_assert_throw("csgl_call_call(): function = NULL");
       
    // I think it's ok to cast to a __cdecl considering
    // the call in C# is considered as a __stdcall
    // this function is declared with 0 param
    // the underlying function is __stdcall to...
    __builtin_return( __builtin_apply((void (*)())info.function, data, info.stacksize) );
}
Esempio n. 5
0
funfn(int a, int b, int c, int d, char *e)
{
        if (a) {
                print();
                return b;
        }
        if (b) {
                int localfn() {
                        return a;
                }
                exit(c);
                
        }
        if (d) {
                __builtin_return( null );
        }
        return c;
}
Esempio n. 6
0
void
foo ()
{
  __builtin_return (0);
}
Esempio n. 7
0
void data_call(__unused int whatever, ...) {
    if(!setjmp(call_jmp)) {
        __builtin_return(__builtin_apply(call_func, __builtin_apply_args(), 32));
    }
}
Esempio n. 8
0
int bar(int n)
{
  __builtin_return(__builtin_apply((void (*)(void))foo, __builtin_apply_args(),
				   STACK_ARGUMENTS_SIZE));
}
Esempio n. 9
0
int bar(int n)
{
  __builtin_return(__builtin_apply((void (*)(void))foo, __builtin_apply_args(), 64));
}