oprofile: sampling works
[akaros.git] / kern / include / ns.h
index c207c0b..1f87548 100644 (file)
@@ -121,6 +121,9 @@ struct dir {
        char *muid;                                     /* last modifier name */
 };
 
+/* Part of the dirty kdirent hack in sysread.  Used to be 59... */
+#define MIN_M_BUF_SZ 52                        /* TODO: 53 is the smallest i've seen */
+
 struct waitmsg {
        int pid;                                        /* of loved one */
        uint32_t time[3];                       /* of loved one and descendants */
@@ -597,6 +600,7 @@ struct block *bl2mem(uint8_t * unused_uint8_p_t, struct block *, int);
 int blocklen(struct block *);
 char *channame(struct chan *);
 void cclose(struct chan *);
+void chan_incref(struct chan *);
 void chandevinit(void);
 void chandevreset(void);
 void chandevshutdown(void);
@@ -664,7 +668,7 @@ int domount(struct chan **, struct mhead **);
 void drawactive(int);
 void drawcmap(void);
 void dumpstack(void);
-struct fgrp *dupfgrp(struct fgrp *);
+struct fgrp *dupfgrp(struct proc *, struct fgrp *);
 void egrpcpy(struct egrp *, struct egrp *);
 int emptystr(char *unused_char_p_t);
 int eqchan(struct chan *, struct chan *, int);
@@ -757,6 +761,7 @@ void putstrn(char *unused_char_p_t, int);
 void qaddlist(struct queue *, struct block *);
 struct block *qbread(struct queue *, int);
 long qbwrite(struct queue *, struct block *);
+long qibwrite(struct queue *q, struct block *b);
 struct queue *qbypass(void (*)(void *, struct block *), void *);
 int qcanread(struct queue *);
 void qclose(struct queue *);
@@ -916,6 +921,7 @@ extern char Ebadstat[];                     /* malformed stat buffer */
 extern char Ecmdargs[];                        /* wrong #args in control message */
 extern char Enofd[];                   /* no free file descriptors */
 extern char Enoctl[];                  /* unknown control request */
+extern char Eprocdied[];               /* process died */
 
 /* kern/src/err.c */
 int errpush(struct errbuf *errstack, int stacksize, int *curindex,
@@ -950,7 +956,8 @@ int grpclose(struct fgrp *f, int fd);
 int sysclose(int fd);
 int syscreate(char *path, int mode, uint32_t perm);
 int sysdup(int old, int new);
-int sysfstat(int fd, uint8_t * buf, int n);
+int sysfstat(int fd, uint8_t*, int n);
+int sysfstatakaros(int fd, struct kstat *);
 char *sysfd2path(int fd);
 int sysfauth(int fd, char *aname);
 int sysfversion(int fd, unsigned int msize, char *vers, unsigned int arglen);
@@ -967,7 +974,8 @@ long syspread(int fd, void *va, long n, int64_t off);
 int sysremove(char *path);
 int64_t sysseek(int fd, int64_t off, int whence);
 void validstat(uint8_t * s, int n);
-int sysstat(char *path, uint8_t * buf, int n);
+int sysstat(char *path, uint8_t*, int n);
+int sysstatakaros(char *path, struct kstat *);
 long syswrite(int fd, void *va, long n);
 long syspwrite(int fd, void *va, long n, int64_t off);
 int syswstat(char *path, uint8_t * buf, int n);
@@ -986,6 +994,9 @@ int iseve(void);
 int fd_getfl(int fd);
 int fd_setfl(int fd, int flags);
 
+/* kern/drivers/dev/srv.c */
+char *srvname(struct chan *c);
+
 static inline int abs(int a)
 {
        if (a < 0)