Print this page
OS-4647 lx fails to mount nfs share - Transport endpoint is already connected
OS-881 To workaround OS-580 add support to only invalidate mappings from a single process
OS-399 zone phys. mem. cap should be a rctl and have associated kstat


 856 }
 857 
 858 void
 859 prt_mc4(private_t *pri, int raw, long val) /* print memcntl() (4th) argument */
 860 {
 861         if (val == 0)
 862                 prt_dec(pri, 0, val);
 863         else if (raw)
 864                 prt_hhx(pri, 0, val);
 865         else {
 866                 char *s = NULL;
 867 
 868 #define CBSIZE  sizeof (pri->code_buf)
 869                 /* cheating -- look at memcntl func */
 870                 switch (pri->sys_args[2]) {
 871                 case MC_ADVISE:
 872                         prt_mad(pri, 0, val);
 873                         return;
 874 
 875                 case MC_SYNC:
 876                         if ((val & ~(MS_SYNC|MS_ASYNC|MS_INVALIDATE)) == 0) {


 877                                 *(s = pri->code_buf) = '\0';
 878                                 if (val & MS_SYNC)
 879                                         (void) strlcat(s, "|MS_SYNC", CBSIZE);
 880                                 if (val & MS_ASYNC)
 881                                         (void) strlcat(s, "|MS_ASYNC", CBSIZE);
 882                                 if (val & MS_INVALIDATE)
 883                                         (void) strlcat(s, "|MS_INVALIDATE",
 884                                             CBSIZE);



 885                         }
 886                         break;
 887 
 888                 case MC_LOCKAS:
 889                 case MC_UNLOCKAS:
 890                         if ((val & ~(MCL_CURRENT|MCL_FUTURE)) == 0) {
 891                                 *(s = pri->code_buf) = '\0';
 892                                 if (val & MCL_CURRENT)
 893                                         (void) strlcat(s, "|MCL_CURRENT",
 894                                             CBSIZE);
 895                                 if (val & MCL_FUTURE)
 896                                         (void) strlcat(s, "|MCL_FUTURE",
 897                                             CBSIZE);
 898                         }
 899                         break;
 900                 }
 901 #undef CBSIZE
 902 
 903                 if (s == NULL || *s == '\0')
 904                         prt_hhx(pri, 0, val);


1981         case SCTP_ADD_ADDR:             return ("SCTP_ADD_ADDR");
1982         case SCTP_REM_ADDR:             return ("SCTP_REM_ADDR");
1983 
1984         default:                        (void) snprintf(pri->code_buf,
1985                                             sizeof (pri->code_buf),
1986                                             "0x%lx", val);
1987                                         return (pri->code_buf);
1988         }
1989 }
1990 
1991 
1992 const char *
1993 udp_optname(private_t *pri, long val)
1994 {
1995         switch (val) {
1996         case UDP_CHECKSUM:              return ("UDP_CHECKSUM");
1997         case UDP_ANONPRIVBIND:          return ("UDP_ANONPRIVBIND");
1998         case UDP_EXCLBIND:              return ("UDP_EXCLBIND");
1999         case UDP_RCVHDR:                return ("UDP_RCVHDR");
2000         case UDP_NAT_T_ENDPOINT:        return ("UDP_NAT_T_ENDPOINT");

2001 
2002         default:                        (void) snprintf(pri->code_buf,
2003                                             sizeof (pri->code_buf), "0x%lx",
2004                                             val);
2005                                         return (pri->code_buf);
2006         }
2007 }
2008 
2009 
2010 /*
2011  * Print setsockopt()/getsockopt() 3rd argument.
2012  */
2013 /*ARGSUSED*/
2014 void
2015 prt_son(private_t *pri, int raw, long val)
2016 {
2017         /* cheating -- look at the level */
2018         switch (pri->sys_args[1]) {
2019         case SOL_SOCKET:        outstring(pri, sol_optname(pri, val));
2020                                 break;


2429  */
2430 void
2431 prt_zga(private_t *pri, int raw, long val)
2432 {
2433         const char *s = NULL;
2434 
2435         if (!raw) {
2436                 switch ((int)val) {
2437                 case ZONE_ATTR_NAME:    s = "ZONE_ATTR_NAME";   break;
2438                 case ZONE_ATTR_ROOT:    s = "ZONE_ATTR_ROOT";   break;
2439                 case ZONE_ATTR_STATUS:  s = "ZONE_ATTR_STATUS"; break;
2440                 case ZONE_ATTR_PRIVSET: s = "ZONE_ATTR_PRIVSET"; break;
2441                 case ZONE_ATTR_UNIQID:  s = "ZONE_ATTR_UNIQID"; break;
2442                 case ZONE_ATTR_POOLID:  s = "ZONE_ATTR_POOLID"; break;
2443                 case ZONE_ATTR_INITPID: s = "ZONE_ATTR_INITPID"; break;
2444                 case ZONE_ATTR_SLBL:    s = "ZONE_ATTR_SLBL"; break;
2445                 case ZONE_ATTR_INITNAME:        s = "ZONE_ATTR_INITNAME"; break;
2446                 case ZONE_ATTR_BOOTARGS:        s = "ZONE_ATTR_BOOTARGS"; break;
2447                 case ZONE_ATTR_BRAND:   s = "ZONE_ATTR_BRAND"; break;
2448                 case ZONE_ATTR_FLAGS:   s = "ZONE_ATTR_FLAGS"; break;
2449                 case ZONE_ATTR_PHYS_MCAP: s = "ZONE_ATTR_PHYS_MCAP"; break;



2450                 }
2451         }
2452 
2453         if (s == NULL)
2454                 prt_dec(pri, 0, val);
2455         else
2456                 outstring(pri, s);
2457 }
2458 
2459 /*
2460  * Print a file descriptor as AT_FDCWD if necessary
2461  */
2462 void
2463 prt_atc(private_t *pri, int raw, long val)
2464 {
2465         if ((int)val == AT_FDCWD) {
2466                 if (raw)
2467                         prt_hex(pri, 0, (uint_t)AT_FDCWD);
2468                 else
2469                         outstring(pri, "AT_FDCWD");




 856 }
 857 
 858 void
 859 prt_mc4(private_t *pri, int raw, long val) /* print memcntl() (4th) argument */
 860 {
 861         if (val == 0)
 862                 prt_dec(pri, 0, val);
 863         else if (raw)
 864                 prt_hhx(pri, 0, val);
 865         else {
 866                 char *s = NULL;
 867 
 868 #define CBSIZE  sizeof (pri->code_buf)
 869                 /* cheating -- look at memcntl func */
 870                 switch (pri->sys_args[2]) {
 871                 case MC_ADVISE:
 872                         prt_mad(pri, 0, val);
 873                         return;
 874 
 875                 case MC_SYNC:
 876                         if ((val &
 877                             ~(MS_SYNC|MS_ASYNC|MS_INVALIDATE|MS_INVALCURPROC))
 878                             == 0) {
 879                                 *(s = pri->code_buf) = '\0';
 880                                 if (val & MS_SYNC)
 881                                         (void) strlcat(s, "|MS_SYNC", CBSIZE);
 882                                 if (val & MS_ASYNC)
 883                                         (void) strlcat(s, "|MS_ASYNC", CBSIZE);
 884                                 if (val & MS_INVALIDATE)
 885                                         (void) strlcat(s, "|MS_INVALIDATE",
 886                                             CBSIZE);
 887                                 if (val & MS_INVALCURPROC)
 888                                         (void) strlcat(s, "|MS_INVALCURPROC",
 889                                             CBSIZE);
 890                         }
 891                         break;
 892 
 893                 case MC_LOCKAS:
 894                 case MC_UNLOCKAS:
 895                         if ((val & ~(MCL_CURRENT|MCL_FUTURE)) == 0) {
 896                                 *(s = pri->code_buf) = '\0';
 897                                 if (val & MCL_CURRENT)
 898                                         (void) strlcat(s, "|MCL_CURRENT",
 899                                             CBSIZE);
 900                                 if (val & MCL_FUTURE)
 901                                         (void) strlcat(s, "|MCL_FUTURE",
 902                                             CBSIZE);
 903                         }
 904                         break;
 905                 }
 906 #undef CBSIZE
 907 
 908                 if (s == NULL || *s == '\0')
 909                         prt_hhx(pri, 0, val);


1986         case SCTP_ADD_ADDR:             return ("SCTP_ADD_ADDR");
1987         case SCTP_REM_ADDR:             return ("SCTP_REM_ADDR");
1988 
1989         default:                        (void) snprintf(pri->code_buf,
1990                                             sizeof (pri->code_buf),
1991                                             "0x%lx", val);
1992                                         return (pri->code_buf);
1993         }
1994 }
1995 
1996 
1997 const char *
1998 udp_optname(private_t *pri, long val)
1999 {
2000         switch (val) {
2001         case UDP_CHECKSUM:              return ("UDP_CHECKSUM");
2002         case UDP_ANONPRIVBIND:          return ("UDP_ANONPRIVBIND");
2003         case UDP_EXCLBIND:              return ("UDP_EXCLBIND");
2004         case UDP_RCVHDR:                return ("UDP_RCVHDR");
2005         case UDP_NAT_T_ENDPOINT:        return ("UDP_NAT_T_ENDPOINT");
2006         case UDP_SND_TO_CONNECTED:      return ("UDP_SND_TO_CONNECTED");
2007 
2008         default:                        (void) snprintf(pri->code_buf,
2009                                             sizeof (pri->code_buf), "0x%lx",
2010                                             val);
2011                                         return (pri->code_buf);
2012         }
2013 }
2014 
2015 
2016 /*
2017  * Print setsockopt()/getsockopt() 3rd argument.
2018  */
2019 /*ARGSUSED*/
2020 void
2021 prt_son(private_t *pri, int raw, long val)
2022 {
2023         /* cheating -- look at the level */
2024         switch (pri->sys_args[1]) {
2025         case SOL_SOCKET:        outstring(pri, sol_optname(pri, val));
2026                                 break;


2435  */
2436 void
2437 prt_zga(private_t *pri, int raw, long val)
2438 {
2439         const char *s = NULL;
2440 
2441         if (!raw) {
2442                 switch ((int)val) {
2443                 case ZONE_ATTR_NAME:    s = "ZONE_ATTR_NAME";   break;
2444                 case ZONE_ATTR_ROOT:    s = "ZONE_ATTR_ROOT";   break;
2445                 case ZONE_ATTR_STATUS:  s = "ZONE_ATTR_STATUS"; break;
2446                 case ZONE_ATTR_PRIVSET: s = "ZONE_ATTR_PRIVSET"; break;
2447                 case ZONE_ATTR_UNIQID:  s = "ZONE_ATTR_UNIQID"; break;
2448                 case ZONE_ATTR_POOLID:  s = "ZONE_ATTR_POOLID"; break;
2449                 case ZONE_ATTR_INITPID: s = "ZONE_ATTR_INITPID"; break;
2450                 case ZONE_ATTR_SLBL:    s = "ZONE_ATTR_SLBL"; break;
2451                 case ZONE_ATTR_INITNAME:        s = "ZONE_ATTR_INITNAME"; break;
2452                 case ZONE_ATTR_BOOTARGS:        s = "ZONE_ATTR_BOOTARGS"; break;
2453                 case ZONE_ATTR_BRAND:   s = "ZONE_ATTR_BRAND"; break;
2454                 case ZONE_ATTR_FLAGS:   s = "ZONE_ATTR_FLAGS"; break;
2455                 case ZONE_ATTR_DID:     s = "ZONE_ATTR_DID"; break;
2456                 case ZONE_ATTR_PMCAP_NOVER: s = "ZONE_ATTR_PMCAP_NOVER"; break;
2457                 case ZONE_ATTR_PMCAP_PAGEOUT: s = "ZONE_ATTR_PMCAP_PAGEOUT";
2458                                         break;
2459                 }
2460         }
2461 
2462         if (s == NULL)
2463                 prt_dec(pri, 0, val);
2464         else
2465                 outstring(pri, s);
2466 }
2467 
2468 /*
2469  * Print a file descriptor as AT_FDCWD if necessary
2470  */
2471 void
2472 prt_atc(private_t *pri, int raw, long val)
2473 {
2474         if ((int)val == AT_FDCWD) {
2475                 if (raw)
2476                         prt_hex(pri, 0, (uint_t)AT_FDCWD);
2477                 else
2478                         outstring(pri, "AT_FDCWD");