libSystem/tools
2010-10-29 01:31:56 +00:00
..
.cvsignore Also ignore AppClient's binary 2010-04-21 18:36:13 +00:00
appbroker.c Floating-point types always require using a pointer (even for input) 2010-09-12 22:41:14 +00:00
appclient.c Added code to handle (double) floats in AppInterface (mostly untested) 2010-09-06 12:56:17 +00:00
Makefile Force linking with libSystem.so from the source tree 2010-10-29 01:31:56 +00:00
project.conf Force linking with libSystem.so from the source tree 2010-10-29 01:31:56 +00:00
README About port assignment 2009-10-31 18:26:02 +00:00

broker reads a configuration file for a given AppInterface, eg:

=== BEGIN FILE ===
service=VFS

[chmod]
ret=INT32
arg1=STRING,pathname
arg2=UINT32,mode
=== END FILE ===

which is then translated into a C header file, eg:
=== BEGIN FILE ===
/* $Id$ */



#ifndef VFS_H
# define VFS_H

# include <stdint.h>
# include <System.h>


/* types */
typedef Buffer * BUFFER;
typedef int32_t INT32;
typedef uint32_t UINT32;
typedef String * STRING;


/* functions */
INT32 VFS_chmod(STRING pathname, UINT32 mode);

#endif /* !VFS_H */
=== END FILE ===

This service definition file and corresponding header may then be committed
along the relevant source code.

It would also be helpful to:
- add scripting possibilities to configure (to regenerate the headers
  accordingly)
- place this code directly inside AppInterface's class
- implement dynamic port assignment: it currently has to be explicitly specified
  in the interface file