1 #
   2 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
   3 #
   4 
   5 #
   6 # Privilege.pm provides the bootstrap for the Sun::Solaris::Privilege module.
   7 #
   8 
   9 require 5.8.4;
  10 use strict;
  11 use warnings;
  12 
  13 package Sun::Solaris::Privilege;
  14 
  15 our $VERSION = '1.4';
  16 
  17 use XSLoader;
  18 XSLoader::load(__PACKAGE__, $VERSION);
  19 
  20 our (@EXPORT_OK, %EXPORT_TAGS);
  21 my @constants = qw(PRIV_STR_SHORT PRIV_STR_LIT PRIV_STR_PORT PRIV_ON PRIV_OFF
  22         PRIV_SET PRIV_AWARE PRIV_AWARE_RESET PRIV_DEBUG PRIV_PFEXEC
  23         PRIV_XPOLICY NET_MAC_AWARE NET_MAC_AWARE_INHERIT __PROC_PROTECT);
  24 my @syscalls = qw(setppriv getppriv setpflags getpflags);
  25 my @libcalls = qw(priv_addset priv_copyset priv_delset
  26     priv_emptyset priv_fillset priv_intersect priv_inverse priv_ineffect
  27     priv_isemptyset priv_isequalset priv_isfullset priv_ismember
  28     priv_issubset priv_union priv_set_to_str priv_str_to_set priv_gettext);
  29 my @variables = qw(%PRIVILEGES %PRIVSETS);
  30 
  31 my @private = qw(priv_getsetbynum priv_getbynum);
  32 
  33 use vars qw(%PRIVILEGES %PRIVSETS);
  34 
  35 #
  36 # Dynamically gather all the privilege and privilege set names; they are
  37 # generated in Privileges.xs::BOOT.
  38 #
  39 push @constants, keys %PRIVILEGES, keys %PRIVSETS;
  40 
  41 @EXPORT_OK = (@constants, @syscalls, @libcalls, @private, @variables);
  42 %EXPORT_TAGS = (CONSTANTS => \@constants, SYSCALLS => \@syscalls,
  43     LIBCALLS => \@libcalls, PRIVATE => \@private, VARIABLES => \@variables,
  44     ALL => \@EXPORT_OK);
  45 
  46 our @ISA = qw(Exporter);
  47 
  48 1;
  49 __END__