]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/include/libc.h
aux/cpuid: decode family and model bitfields
[plan9front.git] / sys / include / libc.h
index 2c4f3b428cc6a5a01bc3d3320e9fa712ea6bfc79..095615ad76c080551d416d1c8ab16316ae4f21d0 100644 (file)
@@ -41,10 +41,12 @@ extern      int     tokenize(char*, char**, int);
 
 enum
 {
-       UTFmax          = 3,            /* maximum bytes per rune */
+       UTFmax          = 4,            /* maximum bytes per rune */
        Runesync        = 0x80,         /* cannot represent part of a UTF sequence (<) */
        Runeself        = 0x80,         /* rune and UTF sequences are the same (<) */
        Runeerror       = 0xFFFD,       /* decoding error in UTF */
+       Runemax         = 0x10FFFF,     /* 21 bit rune */
+       Runemask        = 0x1FFFFF,     /* bits used by runes (see grep) */
 };
 
 /*
@@ -95,10 +97,10 @@ extern      ulong   msize(void*);
 extern void*   mallocalign(ulong, ulong, long, ulong);
 extern void*   calloc(ulong, ulong);
 extern void*   realloc(void*, ulong);
-extern void    setmalloctag(void*, ulong);
-extern void    setrealloctag(void*, ulong);
-extern ulong   getmalloctag(void*);
-extern ulong   getrealloctag(void*);
+extern void    setmalloctag(void*, uintptr);
+extern void    setrealloctag(void*, uintptr);
+extern uintptr getmalloctag(void*);
+extern uintptr getrealloctag(void*);
 extern void*   malloctopoolblock(void*);
 
 /*
@@ -177,16 +179,31 @@ extern    Rune*   runefmtstrflush(Fmt*);
 #pragma        varargck        argpos  sprint          2
 
 #pragma        varargck        type    "lld"   vlong
+#pragma        varargck        type    "llo"   vlong
 #pragma        varargck        type    "llx"   vlong
+#pragma        varargck        type    "llb"   vlong
 #pragma        varargck        type    "lld"   uvlong
+#pragma        varargck        type    "llo"   uvlong
 #pragma        varargck        type    "llx"   uvlong
+#pragma        varargck        type    "llb"   uvlong
 #pragma        varargck        type    "ld"    long
+#pragma        varargck        type    "lo"    long
 #pragma        varargck        type    "lx"    long
 #pragma        varargck        type    "lb"    long
 #pragma        varargck        type    "ld"    ulong
+#pragma        varargck        type    "lo"    ulong
 #pragma        varargck        type    "lx"    ulong
 #pragma        varargck        type    "lb"    ulong
+#pragma varargck       type    "zd"    intptr
+#pragma varargck       type    "zo"    intptr
+#pragma varargck       type    "zx"    intptr
+#pragma varargck       type    "zb"    intptr
+#pragma varargck       type    "zd"    uintptr
+#pragma varargck       type    "zo"    uintptr
+#pragma varargck       type    "zx"    uintptr
+#pragma varargck       type    "zb"    uintptr
 #pragma        varargck        type    "d"     int
+#pragma        varargck        type    "o"     int
 #pragma        varargck        type    "x"     int
 #pragma        varargck        type    "c"     int
 #pragma        varargck        type    "C"     int
@@ -465,7 +482,6 @@ extern      void    rsleep(Rendez*);        /* unlocks r->l, sleeps, locks r->l again */
 extern int     rwakeup(Rendez*);
 extern int     rwakeupall(Rendez*);
 extern void**  privalloc(void);
-extern void    privfree(void**);
 
 /*
  *  network dialing
@@ -670,6 +686,7 @@ extern      int     semacquire(long*, int);
 extern long    semrelease(long*, long);
 extern int     sleep(long);
 extern int     stat(char*, uchar*, int);
+extern int     tsemacquire(long*, ulong);
 extern Waitmsg*        wait(void);
 extern int     waitpid(void);
 extern long    write(int, void*, long);