diff --git a/share/libc/grp.h b/share/libc/grp.h
index 992c70577f4aab91153e9da7c85bc75f81f3aa49..0744a011489ce4ebd12d642544c71de60dde9b29 100644
--- a/share/libc/grp.h
+++ b/share/libc/grp.h
@@ -47,6 +47,14 @@ extern void setgrent(void);
 
 /* BSD function */
 extern int initgroups (const char *user, gid_t group);
+/*@
+  // missing: ... \from groups database
+  assigns \result \from indirect:user[0..], indirect:group, indirect:*ngroups;
+  assigns groups[0 .. \old(*ngroups) - 1], *ngroups
+          \from indirect:user[0..], group, *ngroups;
+*/
+extern int getgrouplist(const char *user, gid_t group,
+                        gid_t *groups, int *ngroups);
 
 __END_DECLS