Initial creation of sourceware repository
This commit is contained in:
parent
cd946cff9e
commit
c906108c21
2470 changed files with 976797 additions and 0 deletions
75
gdb/rdi-share/msgbuild.h
Normal file
75
gdb/rdi-share/msgbuild.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved.
|
||||
*
|
||||
* This software may be freely used, copied, modified, and distributed
|
||||
* provided that the above copyright notice is preserved in all copies of the
|
||||
* software.
|
||||
*/
|
||||
|
||||
/* -*-C-*-
|
||||
*
|
||||
* $Revision$
|
||||
* $Date$
|
||||
*
|
||||
*
|
||||
* msgbuild.h - utilities for assembling and interpreting ADP messages
|
||||
*/
|
||||
|
||||
#ifndef angel_msgbuild_h
|
||||
#define angel_msgbuild_h
|
||||
#include <stdarg.h>
|
||||
#include "channels.h"
|
||||
|
||||
/*
|
||||
* msgbuild
|
||||
* --------
|
||||
* We use a "varargs" function to enable a description of how the
|
||||
* final message should look to be provided. We use a function rather
|
||||
* than in-line macros to keep the size of Angel small.
|
||||
*
|
||||
* The "buffer" pointer is the starting point from where the data will
|
||||
* be written. Note: If a NULL pointer is passed then no data will be
|
||||
* written, but the size information will be returned. This allows
|
||||
* code to call this routine with a NULL "buffer" pointer to ascertain
|
||||
* whether the pointer they are passing contains enough space for the
|
||||
* message being constructed.
|
||||
*
|
||||
* The "format" string should contain sequences of the following
|
||||
* tokens:
|
||||
* %w - insert 32bit word value
|
||||
* %p - insert 32bit target pointer value
|
||||
* %h - insert 16bit value
|
||||
* %b - insert 8bit byte value
|
||||
*
|
||||
* The return parameter is the final byte length of the data written.
|
||||
*/
|
||||
unsigned int msgbuild(unsigned char *buffer, const char *format, ...);
|
||||
unsigned int vmsgbuild(unsigned char *buffer, const char *format,
|
||||
va_list args);
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* msgsend
|
||||
* -------
|
||||
* As for msgbuild except that it allocates a buffer, formats the data as
|
||||
* for msgbuild and transmits the packet. Returns 0 if successful non 0 if ot
|
||||
* fails.
|
||||
* Not for use on cooked channels e.g. debug channels only.
|
||||
*/
|
||||
extern int msgsend(ChannelID chan, const char *format, ...);
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Unpack_message
|
||||
* --------------
|
||||
* This basically does the opposite of msg_build, it takes a message, and
|
||||
* a scanf type format string (but much cut down functionality) and returns
|
||||
* the arguments in the message.
|
||||
*/
|
||||
extern unsigned int unpack_message(unsigned char *buffer, const char *format, ...);
|
||||
|
||||
#endif /* ndef angel_msgbuild_h */
|
||||
|
||||
/* EOF msgbuild.h */
|
Loading…
Add table
Add a link
Reference in a new issue