C integrated RPC

Joel Sherrill joel.sherrill@oarcorp.com
Wed Jan 21 19:32:00 GMT 2009


andrew babanin wrote:
>> 2009/1/21 Joel Sherrill <joel.sherrill@oarcorp.com>:
>>     
>
>   
>> I think this would have been useful on at least one project
>> in my history. :)
>>
>> Ian mentioned embedded systems in an earlier question
>> and I am still unsure what you require of the OS in terms
>> of services to work.  Cygwin is very close to a "real UNIX"
>> from a programming viewpoint.
>>
>> + What do you require of the threading support?
>> + Network services?
>> + filesystem?
>> + etc
>>     
>
> Hello.
>
> To work wrapper-compiler requires only libc, you can see it in the source.
> Compiler input/output implemented using mmap system call, and
> the process of language extension is like filtering the source -
> reading from one place of image and writing to another place of memory image.
> So I think compiler can compiled on every platform.
> (The problem with CygWin is that, my compiler requires file metadata
> in one place,
> but dirent struct is different on Win platform, but it is not hard to
> reimplement).
>
> Threading support is only deal with POSIX threads. You can create __threaded
> functions and __mutual varibles, wц▓ich will be automatically locked
> and unlocked,
> before addressing.
>
> CRPC has it's own network protocol, based on BSD sockets and implemented in
> CRPC library. It is very easy, no external servicies are needed, as
> compiler helps
> with distinguishing remote functions
> (using 32-bit checksum calculated from the prototype text).
>
>   
Is the marshalling and encoding based upon anything
standard?

Does it support RPC's across heterogeneous hosts?
>> RTEMS is a single process, multithreaded RTOS with
>> a port of the FreeBSD TCP/IP stack.  Do you think that
>> would that be sufficient to run on?
>>
>>     
>
> I thing it will be sufficient to run on it, but I have not ever tested
> on this systems.
> I will try to test on it.
> Am I answered you questions?
>   
I think so.  The run-time assumes POSIX threads and BSD sockets
and (I assume) POSIX mutex for the locking.

Depending on how things go with the merge, it probably makes
sense to switch to the gcc portability wrappers for threading
and mutexes.  But it is up to others on merging.  I was just
trying to clarify the run-time requirements. :)

Thanks.

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985




More information about the Gcc mailing list