import gdb-2000-02-04 snapshot

This commit is contained in:
Jason Molenda
2000-02-05 07:30:26 +00:00
parent 32edc927fa
commit dfcd3bfb6f
54 changed files with 9683 additions and 8351 deletions

View File

@@ -37,22 +37,22 @@
/* Read and write routines down sockets and pipes */
void MYread_chars(int sock, void *p, int n);
unsigned char MYread_char(int sock);
ARMword MYread_word(int sock);
void MYread_FPword(int sock, char *putinhere);
void MYread_chars (int sock, void *p, int n);
unsigned char MYread_char (int sock);
ARMword MYread_word (int sock);
void MYread_FPword (int sock, char *putinhere);
void MYwrite_word(int sock, ARMword i);
void MYwrite_string(int sock, char *s);
void MYwrite_FPword(int sock, char *fromhere);
void MYwrite_char(int sock, unsigned char c);
void MYwrite_word (int sock, ARMword i);
void MYwrite_string (int sock, char *s);
void MYwrite_FPword (int sock, char *fromhere);
void MYwrite_char (int sock, unsigned char c);
void passon(int source, int dest, int n);
void passon (int source, int dest, int n);
/* Mother and child processes */
void parent (void);
void kid(void);
void kid (void);
/* The child process id. */
pid_t child;
@@ -86,98 +86,109 @@ unsigned int socketnumber;
/* Opens a socket to the debugger, and once opened spawns the */
/* ARMulator and sets up a couple of pipes. */
/**************************************************************/
int main(int argc, char *argv[]) {
int
main (int argc, char *argv[])
{
int i;
struct sockaddr_in devil, isa;
struct hostent *hp;
if (argc == 1) {
fprintf(stderr, "No socket number\n");
return 1;
}
if (argc == 1)
{
fprintf (stderr, "No socket number\n");
return 1;
}
sscanf(argv[1], "%d", &socketnumber);
if (!socketnumber || socketnumber > 0xffff) {
fprintf(stderr, "Invalid socket number: %d\n", socketnumber);
return 1;
}
sscanf (argv[1], "%d", &socketnumber);
if (!socketnumber || socketnumber > 0xffff)
{
fprintf (stderr, "Invalid socket number: %d\n", socketnumber);
return 1;
}
gethostname(localhost, MAXHOSTNAMELENGTH);
hp = gethostbyname(localhost);
if (!hp) {
fprintf(stderr, "Cannot get local host info\n");
return 1;
}
gethostname (localhost, MAXHOSTNAMELENGTH);
hp = gethostbyname (localhost);
if (!hp)
{
fprintf (stderr, "Cannot get local host info\n");
return 1;
}
/* Open a socket */
sockethandle = socket(hp->h_addrtype, SOCK_STREAM, 0);
if (sockethandle < 0) {
perror("socket");
return 1;
}
sockethandle = socket (hp->h_addrtype, SOCK_STREAM, 0);
if (sockethandle < 0)
{
perror ("socket");
return 1;
}
devil.sin_family = hp->h_addrtype;
devil.sin_port = htons(socketnumber);
devil.sin_port = htons (socketnumber);
devil.sin_addr.s_addr = 0;
for(i = 0; i < sizeof(devil.sin_zero); i++) devil.sin_zero[i] = '\000';
memcpy(&devil.sin_addr, hp->h_addr_list[0], hp->h_length);
for (i = 0; i < sizeof (devil.sin_zero); i++)
devil.sin_zero[i] = '\000';
memcpy (&devil.sin_addr, hp->h_addr_list[0], hp->h_length);
if (bind(sockethandle, &devil, sizeof(devil)) < 0) {
perror("bind");
return 1;
}
if (bind (sockethandle, &devil, sizeof (devil)) < 0)
{
perror ("bind");
return 1;
}
/* May only accept one debugger at once */
if (listen(sockethandle, 0)) {
perror("listen");
return 1;
}
if (listen (sockethandle, 0))
{
perror ("listen");
return 1;
}
fprintf(stderr, "Waiting for connection from debugger...");
fprintf (stderr, "Waiting for connection from debugger...");
debugsock = accept(sockethandle, &isa, &i);
if (debugsock < 0) {
perror("accept");
return 1;
}
fprintf(stderr, " done.\nConnection Established.\n");
debugsock = accept (sockethandle, &isa, &i);
if (debugsock < 0)
{
perror ("accept");
return 1;
}
nfds = getdtablesize();
fprintf (stderr, " done.\nConnection Established.\n");
if (pipe(mumkid)) {
perror("pipe");
return 1;
}
if (pipe(kidmum)) {
perror("pipe");
return 1;
}
if (pipe(DebuggerARMul)) {
perror("pipe");
return 1;
}
#ifdef DEBUG
fprintf(stderr, "Created pipes ok\n");
#endif
nfds = getdtablesize ();
child = fork();
if (pipe (mumkid))
{
perror ("pipe");
return 1;
}
if (pipe (kidmum))
{
perror ("pipe");
return 1;
}
if (pipe (DebuggerARMul))
{
perror ("pipe");
return 1;
}
#ifdef DEBUG
fprintf(stderr, "fork() ok\n");
fprintf (stderr, "Created pipes ok\n");
#endif
if (child == 0) kid ();
if (child != -1) parent ();
child = fork ();
perror("fork");
#ifdef DEBUG
fprintf (stderr, "fork() ok\n");
#endif
if (child == 0)
kid ();
if (child != -1)
parent ();
perror ("fork");
return 1;
}