Lots of magic
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / zone.c
index e6abe63..f6adcd4 100644 (file)
    02111-1307 USA.  */
 
 #include <inline-syscall.h>
-#include <priv.h>
-#include <zone.h>
+#include <zoneP.h>
+#include <privP.h>
 #include <dlfcn.h>
 
+static int (*_zone_get_id) (const char *, zoneid_t *);
+
 DECLARE_INLINE_SYSCALL (zoneid_t, zone_create, zone_def *def);
 DECLARE_INLINE_SYSCALL (zoneid_t, zone_lookup, const char *name);
 
 
+
 zoneid_t getzoneid (void)
 {
   return INLINE_SYSCALL (zone_lookup, 1, NULL);
@@ -49,15 +52,11 @@ zoneid_t zone_create (const char *name, const char *root,
       const char *zfsbuf, size_t zfsbufsz, int *extended_error, int match,
       int doi, const bslabel_t *label, int flags)
 {
-  const priv_impl_info_t *info = getprivimplinfo ();
-  if (info == NULL)
-    return -1;
-
   zone_def def;
   def.zone_name = name;
   def.zone_root = root;
   def.zone_privs = privs;
-  def.zone_privssz = info->priv_setsize * sizeof (priv_chunk_t);
+  def.zone_privssz = __PRIVSETSIZE;
   def.rctlbuf = rctlbuf;
   def.rctlbufsz = rctlbufsz;
   def.extended_error = extended_error;
@@ -72,8 +71,6 @@ zoneid_t zone_create (const char *name, const char *root,
 }
 
 
-int (*_zone_get_id)(const char *, zoneid_t *);
-
 int zone_get_id (const char *str, zoneid_t *idp)
 {
   /* libzonecfg.so.1 has the real function.  */