From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f49.google.com ([209.85.128.49]) by ewsd; Fri May 29 11:07:29 EDT 2020 Received: by mail-wm1-f49.google.com with SMTP id k26so3958891wmi.4 for <9front@9front.org>; Fri, 29 May 2020 08:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:date:to:cc:subject:mime-version; bh=wH8Bgho16JJchrMONuaadmohhFLfOUp5hITl5rDdCGg=; b=WVFjIPRR2/dqNuMd/1CYmmf2oeFsTkAXvWfpln5uEg9u2skKVKxm+Lmp467SQL+vUS fy8tK5pBfk71yY09RuexlPElpE5wGrb80iI3sIrN97zJ50iwJi7LCq5NAlx3A/xIY9uS dBGr6Gfc36aJN7EPK+Lt5V8S+Hq7Z17euwNr6tch3Egf/bUxdUOQ8ZEPcwlFys3kJ1lO ntqrym7lN/Xi6I3UexQWmx3lEuGWV6qYCKn2Kn2Sf8J2dERrh6zaDoegVfxicfPk/wEX nChDk8LrDVkMDjIQbrhsfTNzykqKcDX0ZYTrq0T/2TOm6fk/kGdQ4WzWt60tHaAIzXPc PWGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:to:cc:subject:mime-version; bh=wH8Bgho16JJchrMONuaadmohhFLfOUp5hITl5rDdCGg=; b=EZxNzchUepIyqHnoEon9r55/UpPe4RwEDDLaEEDcI6e3XfNaSWrTl6FEdujsjV3oTz VtoMMJl1ul1nf1LJW2a1GV8+OCse6zOQ9DpvqUPyrAInEDXVj0CM7z6E/g3pVyr/cT5n LJxKtkyC2fBSJc6SS102D21bzDuMIWkt3bL0ObhuGlSJsahshuy8PE0HnIWlSzJoQzV3 K/RlpcQuTYoYaDobErD7tHdsvRyz7bBUBW/Cw3qcnGw9YTw0A1aGA/kkmqUIgfUuX+/S WFms7Tbi/q2VLOiGseFGK6rsFix8vYBLPyVyGTUUF1WpGzaJqlTZak08JlTqH0Jh3EEy vidQ== X-Gm-Message-State: AOAM530WAijJjcAbkYrC6Kln1smpPdElvf1R287NlDNmx86zIvhynWt/ aMMkBlE+m6fLF+K6abeESLY= X-Google-Smtp-Source: ABdhPJxIvbwjaqjd/WHHQhG7+VRJ/pK/h2mR3/uCLb1zrJITuSL2tBd7ZdYwlooIj1Kh4Zdj9SGy0g== X-Received: by 2002:a1c:4189:: with SMTP id o131mr9351831wma.110.1590764845866; Fri, 29 May 2020 08:07:25 -0700 (PDT) Return-Path: Received: from hades (lfbn-idf1-1-935-106.w86-238.abo.wanadoo.fr. [86.238.18.106]) by smtp.gmail.com with ESMTPSA id p7sm10317322wro.26.2020.05.29.08.07.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 29 May 2020 08:07:25 -0700 (PDT) From: telephil9@gmail.com X-Google-Original-From: pme@gmail.com Message-ID: Date: Fri, 29 May 2020 17:07:23 +0200 To: 9front@9front.org Cc: telephil9@gmail.com Subject: [PATCH] ape: add libplumb MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="upas-pqbgemoblamvxfutjvfghuixyb" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: stable distributed shader session optimizer This is a multi-part message in MIME format. --upas-pqbgemoblamvxfutjvfghuixyb Content-Disposition: inline Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Hi, Here is a patch to add libplumb to APE. I also had sent another APE patch on 05/24 (add eenter to ape/libdraw) that might have gone unnoticed due to the ongoing release. These two patches are needed for the netsurf port. Regards, Philippe --upas-pqbgemoblamvxfutjvfghuixyb Content-Disposition: inline Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit diff -r 318eaf3a920f sys/include/ape/plumb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/include/ape/plumb.h Fri May 29 16:58:58 2020 +0200 @@ -0,0 +1,57 @@ +#ifndef _PLAN9_SOURCE + This header file is an extension to ANSI/POSIX +#endif + +#ifndef __PLUMB_H_ +#define __PLUMB_H_ +#pragma src "/sys/src/ape/lib/plumb" +#pragma lib "/$M/lib/ape/libplumb.a" + +/* + * Message format: + * source application\n + * destination port\n + * working directory\n + * type\n + * attributes\n + * nbytes\n + * n bytes of data + */ + +typedef struct Plumbattr Plumbattr; +typedef struct Plumbmsg Plumbmsg; + +struct Plumbmsg +{ + char *src; + char *dst; + char *wdir; + char *type; + Plumbattr *attr; + int ndata; + char *data; +}; + +struct Plumbattr +{ + char *name; + char *value; + Plumbattr *next; +}; + +int plumbsend(int, Plumbmsg*); +int plumbsendtext(int, char*, char*, char*, char*); +Plumbmsg* plumbrecv(int); +char* plumbpack(Plumbmsg*, int*); +Plumbmsg* plumbunpack(char*, int); +Plumbmsg* plumbunpackpartial(char*, int, int*); +char* plumbpackattr(Plumbattr*); +Plumbattr* plumbunpackattr(char*); +Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*); +Plumbattr* plumbdelattr(Plumbattr*, char*); +void plumbfree(Plumbmsg*); +char* plumblookup(Plumbattr*, char*); +int plumbopen(char*, int); +int eplumb(int, char*); + +#endif diff -r 318eaf3a920f sys/src/ape/lib/9/libc.h --- a/sys/src/ape/lib/9/libc.h Sun May 17 23:46:09 2020 +0200 +++ b/sys/src/ape/lib/9/libc.h Fri May 29 16:58:58 2020 +0200 @@ -159,6 +159,7 @@ #define ERRMAX 128 int errstr(char*, unsigned int); +void rerrstr(char*, unsigned int); extern void sysfatal(char*, ...); extern void setmalloctag(void*, uintptr_t); diff -r 318eaf3a920f sys/src/ape/lib/9/mkfile --- a/sys/src/ape/lib/9/mkfile Sun May 17 23:46:09 2020 +0200 +++ b/sys/src/ape/lib/9/mkfile Fri May 29 16:58:58 2020 +0200 @@ -8,6 +8,7 @@ crypt.$O\ ctime.$O\ errstr.$O\ + rerrstr.$O\ getcallerpc.$O\ getfcr.$O\ getfields.$O\ diff -r 318eaf3a920f sys/src/ape/lib/9/rerrstr.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/src/ape/lib/9/rerrstr.c Fri May 29 16:58:58 2020 +0200 @@ -0,0 +1,12 @@ +#include "libc.h" + +void +rerrstr(char *buf, uint nbuf) +{ + char tmp[ERRMAX]; + + tmp[0] = 0; + errstr(tmp, sizeof tmp); + utfecpy(buf, buf+nbuf, tmp); + errstr(tmp, sizeof tmp); +} diff -r 318eaf3a920f sys/src/ape/lib/plumb/mkfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/src/ape/lib/plumb/mkfile Fri May 29 16:58:58 2020 +0200 @@ -0,0 +1,25 @@ +APE=/sys/src/ape +<$APE/config + +LIB=/$objtype/lib/ape/libplumb.a + +OFILES=\ + event.$O\ + mesg.$O\ + plumbsendtext.$O + +HFILES=\ + /sys/include/ape/plumb.h\ + +UPDATE=\ + mkfile\ + $HFILES\ + ${OFILES:%.$O=%.c}\ + ${LIB:/$objtype/%=/386/%}\ + +