Skip to content

Commit

Permalink
modify how sessions propagate
Browse files Browse the repository at this point in the history
Signed-off-by: Jens Nyberg <jens.nyberg@gmail.com>
  • Loading branch information
jezze committed Nov 15, 2018
1 parent cc93acc commit 3f44e19
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 15 deletions.
10 changes: 5 additions & 5 deletions lib/abi/job.c
Expand Up @@ -42,7 +42,7 @@ static void runjob(union event_message *imessage, union event_message *omessage,
event_request(omessage, imessage, EVENT_INIT, session);

for (x = njobs; x > j + 1; x--)
event_route(omessage, jobs[x - 1].id);
event_addroute(omessage, jobs[x - 1].id, session);

event_place(jobs[j].id, omessage);

Expand All @@ -60,7 +60,7 @@ static void runjob(union event_message *imessage, union event_message *omessage,
event_request(omessage, imessage, EVENT_FILE, session);

for (x = njobs; x > j + 1; x--)
event_route(omessage, jobs[x - 1].id);
event_addroute(omessage, jobs[x - 1].id, session);

event_addfile(omessage, FILE_P0 + k);
event_place(jobs[j].id, omessage);
Expand All @@ -78,7 +78,7 @@ static void runjob(union event_message *imessage, union event_message *omessage,
event_request(omessage, imessage, EVENT_DATA, session);

for (x = njobs; x > j + 1; x--)
event_route(omessage, jobs[x - 1].id);
event_addroute(omessage, jobs[x - 1].id, session);

event_append(omessage, ascii_length(jobs[j].data[k]), jobs[j].data[k]);
event_place(jobs[j].id, omessage);
Expand All @@ -93,7 +93,7 @@ static void runjob(union event_message *imessage, union event_message *omessage,
event_request(omessage, imessage, EVENT_FILE, session);

for (x = njobs; x > j + 1; x--)
event_route(omessage, jobs[x - 1].id);
event_addroute(omessage, jobs[x - 1].id, session);

event_addfile(omessage, 0);
event_place(jobs[j].id, omessage);
Expand All @@ -108,7 +108,7 @@ static void runjob(union event_message *imessage, union event_message *omessage,
event_request(omessage, imessage, EVENT_STOP, session);

for (x = njobs; x > j + 1; x--)
event_route(omessage, jobs[x - 1].id);
event_addroute(omessage, jobs[x - 1].id, session);

event_place(jobs[j].id, omessage);

Expand Down
27 changes: 19 additions & 8 deletions lib/fudge/event.c
Expand Up @@ -34,11 +34,17 @@ unsigned int event_avail(union event_message *message)

}

unsigned int event_route(union event_message *message, unsigned int target)
unsigned int event_addroute(union event_message *message, unsigned int target, unsigned int session)
{

if (message->header.nroutes < 16)
message->header.routes[message->header.nroutes++] = target;
{

message->header.routes[message->header.nroutes].target = target;
message->header.routes[message->header.nroutes].session = session;
message->header.nroutes++;

}

return message->header.nroutes;

Expand Down Expand Up @@ -266,7 +272,7 @@ void event_forward(union event_message *omessage, union event_message *imessage,
omessage->header.session = imessage->header.session;

for (i = 0; i < imessage->header.nroutes; i++)
event_route(omessage, imessage->header.routes[i]);
event_addroute(omessage, imessage->header.routes[i].target, imessage->header.routes[i].session);

}

Expand All @@ -280,9 +286,9 @@ void event_request(union event_message *omessage, union event_message *imessage,
omessage->header.session = session;

for (i = 0; i < imessage->header.nroutes; i++)
event_route(omessage, imessage->header.routes[i]);
event_addroute(omessage, imessage->header.routes[i].target, imessage->header.routes[i].session);

event_route(omessage, imessage->header.target);
event_addroute(omessage, imessage->header.target, session);

}

Expand All @@ -294,14 +300,19 @@ void event_reply(union event_message *omessage, union event_message *imessage, u
event_create(omessage, type);

omessage->header.session = imessage->header.session;
omessage->header.source = imessage->header.target;
omessage->header.target = imessage->header.source;

for (i = 0; i < imessage->header.nroutes; i++)
event_route(omessage, imessage->header.routes[i]);
event_addroute(omessage, imessage->header.routes[i].target, imessage->header.routes[i].session);

if (omessage->header.nroutes)
omessage->header.target = omessage->header.routes[--omessage->header.nroutes];
{

omessage->header.nroutes--;
omessage->header.target = omessage->header.routes[omessage->header.nroutes].target;
omessage->header.session = omessage->header.routes[omessage->header.nroutes].session;

}

}

12 changes: 10 additions & 2 deletions lib/fudge/event.h
Expand Up @@ -24,6 +24,14 @@
#define EVENT_WMMOUSEPRESS 0x93
#define EVENT_WMMOUSERELEASE 0x94

struct event_route
{

unsigned int target;
unsigned int session;

};

struct event_header
{

Expand All @@ -33,7 +41,7 @@ struct event_header
unsigned int session;
unsigned int length;
unsigned int nroutes;
unsigned int routes[16];
struct event_route routes[16];

};

Expand Down Expand Up @@ -170,7 +178,7 @@ struct event_wmmousemove
void *event_getdata(union event_message *message);
unsigned int event_getdatasize(union event_message *message);
unsigned int event_avail(union event_message *message);
unsigned int event_route(union event_message *message, unsigned int target);
unsigned int event_addroute(union event_message *message, unsigned int target, unsigned int session);
unsigned int event_addfile(union event_message *message, unsigned int descriptor);
unsigned int event_addconsoledata(union event_message *message, char data);
unsigned int event_addkeypress(union event_message *message, unsigned char scancode);
Expand Down

0 comments on commit 3f44e19

Please sign in to comment.