Print this page
6621176 $SRC/cmd/cmd-crypto/cryptoadm/*.c seem to have syntax errors in the translation notes

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/cmd-crypto/cryptoadm/cryptoadm.c
          +++ new/usr/src/cmd/cmd-crypto/cryptoadm/cryptoadm.c
↓ open down ↓ 11 lines elided ↑ open up ↑
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22      - * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
       22 + * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  27   26  
  28   27  #include <fcntl.h>
  29   28  #include <stdio.h>
  30   29  #include <stdlib.h>
  31   30  #include <strings.h>
  32   31  #include <unistd.h>
  33   32  #include <locale.h>
  34   33  #include <libgen.h>
  35   34  #include <sys/types.h>
  36   35  #include <zone.h>
↓ open down ↓ 10 lines elided ↑ open up ↑
  47   46          CRYPTO_ENABLE,
  48   47          CRYPTO_INSTALL,
  49   48          CRYPTO_UNINSTALL,
  50   49          CRYPTO_UNLOAD,
  51   50          CRYPTO_REFRESH,
  52   51          CRYPTO_START,
  53   52          CRYPTO_STOP,
  54   53          CRYPTO_HELP };
  55   54  
  56   55  /*
  57      - * TRANSLATION_NOTE:
       56 + * TRANSLATION_NOTE
  58   57   * Command keywords are not to be translated.
  59   58   */
  60   59  static char *cmd_table[] = {
  61   60          "list",
  62   61          "disable",
  63   62          "enable",
  64   63          "install",
  65   64          "uninstall",
  66   65          "unload",
  67   66          "refresh",
↓ open down ↓ 8 lines elided ↑ open up ↑
  76   75          PROV_KEF_HARD,
  77   76          METASLOT,
  78   77          PROV_BADNAME };
  79   78  
  80   79  typedef struct {
  81   80          char cp_name[MAXPATHLEN];
  82   81          enum provider_type_index cp_type;
  83   82  } cryptoadm_provider_t;
  84   83  
  85   84  /*
  86      - * TRANSLATION_NOTE:
       85 + * TRANSLATION_NOTE
  87   86   * Operand keywords are not to be translated.
  88   87   */
  89   88  static const char *KN_PROVIDER = "provider=";
  90   89  static const char *KN_MECH = "mechanism=";
  91   90  static const char *KN_ALL = "all";
  92   91  static const char *KN_TOKEN = "token=";
  93   92  static const char *KN_SLOT = "slot=";
  94   93  static const char *KN_DEFAULT_KS = "default-keystore";
  95   94  static const char *KN_AUTO_KEY_MIGRATE = "auto-key-migrate";
  96   95  
↓ open down ↓ 94 lines elided ↑ open up ↑
 191  190                  break;
 192  191          }
 193  192          return (rc);
 194  193  }
 195  194  
 196  195  
 197  196  static void
 198  197  usage(void)
 199  198  {
 200  199          /*
 201      -         * TRANSLATION_NOTE:
      200 +         * TRANSLATION_NOTE
 202  201           * Command usage is not to be translated.  Only the word "Usage:"
 203  202           * along with localized expressions indicating what kind of value
 204  203           * is expected for arguments.
 205  204           */
 206  205          (void) fprintf(stderr, gettext("Usage:\n"));
 207  206          (void) fprintf(stderr,
 208  207              "  cryptoadm list [-mpv] [provider=<%s> | metaslot]"
 209  208              " [mechanism=<%s>]\n",
 210  209              gettext("provider-name"), gettext("mechanism-list"));
 211  210          (void) fprintf(stderr,
↓ open down ↓ 33 lines elided ↑ open up ↑
 245  244              "  cryptoadm --help\n");
 246  245  }
 247  246  
 248  247  
 249  248  /*
 250  249   * Get the provider type.  This function returns
 251  250   * - PROV_UEF_LIB if provname contains an absolute path name
 252  251   * - PROV_KEF_SOFT if provname is a base name only
 253  252   * - PROV_KEF_HARD if provname contains one slash only and the slash is not
 254  253   *      the 1st character.
 255      - * - PROV_BADNAME othewise.
      254 + * - PROV_BADNAME otherwise.
 256  255   */
 257  256  static int
 258  257  get_provider_type(char *provname)
 259  258  {
 260  259          char *pslash1;
 261  260          char *pslash2;
 262  261  
 263  262          if (provname == NULL) {
 264  263                  return (FAILURE);
 265  264          }
↓ open down ↓ 32 lines elided ↑ open up ↑
 298  297                  if (strncmp(argv[c], METASLOT_KEYWORD,
 299  298                      strlen(METASLOT_KEYWORD)) == 0) {
 300  299                          is_metaslot = B_TRUE;
 301  300                          found = B_TRUE;
 302  301                  } else if (strncmp(argv[c], KN_PROVIDER,
 303  302                      strlen(KN_PROVIDER)) == 0 &&
 304  303                      strlen(argv[c]) > strlen(KN_PROVIDER)) {
 305  304                          if ((provstr = strdup(argv[c])) == NULL) {
 306  305                                  int err = errno;
 307  306                                  /*
 308      -                                 * TRANSLATION_NOTE:
      307 +                                 * TRANSLATION_NOTE
 309  308                                   * "get_provider" is a function name and should
 310  309                                   * not be translated.
 311  310                                   */
 312  311                                  cryptoerror(LOG_STDERR, "get_provider: %s.",
 313  312                                      strerror(err));
 314  313                                  return (NULL);
 315  314                          }
 316  315                          found = B_TRUE;
 317  316                  }
 318  317          }
↓ open down ↓ 157 lines elided ↑ open up ↑
 476  475  
 477  476          while (!found && ++c < argc) {
 478  477                  if ((strncmp(argv[c], KN_MECH, strlen(KN_MECH)) == 0) &&
 479  478                      strlen(argv[c]) > strlen(KN_MECH)) {
 480  479                          found = B_TRUE;
 481  480                  }
 482  481          }
 483  482          if (!found) {
 484  483                  if (!quiet)
 485  484                          /*
 486      -                         * TRANSLATION_NOTE:
      485 +                         * TRANSLATION_NOTE
 487  486                           * "mechanism" could be either a literal keyword
 488  487                           * and hence not to be translated, or a descriptive
 489  488                           * word and translatable.  A choice was made to
 490  489                           * view it as a literal keyword.
 491  490                           */
 492  491                          cryptoerror(LOG_STDERR,
 493  492                                  gettext("the %s operand is missing.\n"),
 494  493                                  "mechanism");
 495  494                  return (ERROR_USAGE);
 496  495          }
↓ open down ↓ 159 lines elided ↑ open up ↑
 656  655                          switch (prov->cp_type) {
 657  656                          case PROV_UEF_LIB:
 658  657                                  rc = list_policy_for_lib(prov->cp_name);
 659  658                                  break;
 660  659                          case PROV_KEF_SOFT:
 661  660                                  if (getzoneid() == GLOBAL_ZONEID) {
 662  661                                          rc = list_policy_for_soft(
 663  662                                              prov->cp_name);
 664  663                                  } else {
 665  664                                          /*
 666      -                                         * TRANSLATION_NOTE:
      665 +                                         * TRANSLATION_NOTE
 667  666                                           * "global" is keyword and not to
 668  667                                           * be translated.
 669  668                                           */
 670  669                                          cryptoerror(LOG_STDERR, gettext(
 671  670                                              "policy information for kernel "
 672  671                                              "providers is available "
 673  672                                              "in the %s zone only"), "global");
 674  673                                          rc = FAILURE;
 675  674                                  }
 676  675                                  break;
 677  676                          case PROV_KEF_HARD:
 678  677                                  if (getzoneid() == GLOBAL_ZONEID) {
 679  678                                          rc = list_policy_for_hard(
 680  679                                              prov->cp_name);
 681  680                                  } else {
 682  681                                          /*
 683      -                                         * TRANSLATION_NOTE:
      682 +                                         * TRANSLATION_NOTE
 684  683                                           * "global" is keyword and not to
 685  684                                           * be translated.
 686  685                                           */
 687  686                                          cryptoerror(LOG_STDERR, gettext(
 688  687                                              "policy information for kernel "
 689  688                                              "providers is available "
 690  689                                              "in the %s zone only"), "global");
 691  690                                          rc = FAILURE;
 692  691                                  }
 693  692  
↓ open down ↓ 77 lines elided ↑ open up ↑
 771  770                          if ((mecharglist = create_mech(RANDOM)) == NULL) {
 772  771                                  rc = FAILURE;
 773  772                                  break;
 774  773                          }
 775  774                  }
 776  775                  if (getzoneid() == GLOBAL_ZONEID) {
 777  776                          rc = disable_kef_software(prov->cp_name, rndflag,
 778  777                              allflag, mecharglist);
 779  778                  } else {
 780  779                          /*
 781      -                         * TRANSLATION_NOTE:
      780 +                         * TRANSLATION_NOTE
 782  781                           * "disable" could be either a literal keyword
 783  782                           * and hence not to be translated, or a verb and
 784  783                           * translatable.  A choice was made to view it as
 785  784                           * a literal keyword.  "global" is keyword and not
 786  785                           * to be translated.
 787  786                           */
 788  787                          cryptoerror(LOG_STDERR, gettext("%1$s for kernel "
 789  788                              "providers is supported in the %2$s zone only"),
 790  789                              "disable", "global");
 791  790                          rc = FAILURE;
↓ open down ↓ 4 lines elided ↑ open up ↑
 796  795                          if ((mecharglist = create_mech(RANDOM)) == NULL) {
 797  796                                  rc = FAILURE;
 798  797                                  break;
 799  798                          }
 800  799                  }
 801  800                  if (getzoneid() == GLOBAL_ZONEID) {
 802  801                          rc = disable_kef_hardware(prov->cp_name, rndflag,
 803  802                              allflag, mecharglist);
 804  803                  } else {
 805  804                          /*
 806      -                         * TRANSLATION_NOTE:
      805 +                         * TRANSLATION_NOTE
 807  806                           * "disable" could be either a literal keyword
 808  807                           * and hence not to be translated, or a verb and
 809  808                           * translatable.  A choice was made to view it as
 810  809                           * a literal keyword.  "global" is keyword and not
 811  810                           * to be translated.
 812  811                           */
 813  812                          cryptoerror(LOG_STDERR, gettext("%1$s for kernel "
 814  813                              "providers is supported in the %2$s zone only"),
 815  814                              "disable", "global");
 816  815                          rc = FAILURE;
↓ open down ↓ 87 lines elided ↑ open up ↑
 904  903                          if ((mecharglist = create_mech(RANDOM)) == NULL) {
 905  904                                  rc = FAILURE;
 906  905                                  break;
 907  906                          }
 908  907                  }
 909  908                  if (getzoneid() == GLOBAL_ZONEID) {
 910  909                          rc = enable_kef(prov->cp_name, rndflag, allflag,
 911  910                              mecharglist);
 912  911                  } else {
 913  912                          /*
 914      -                         * TRANSLATION_NOTE:
      913 +                         * TRANSLATION_NOTE
 915  914                           * "enable" could be either a literal keyword
 916  915                           * and hence not to be translated, or a verb and
 917  916                           * translatable.  A choice was made to view it as
 918  917                           * a literal keyword.  "global" is keyword and not
 919  918                           * to be translated.
 920  919                           */
 921  920                          cryptoerror(LOG_STDERR, gettext("%1$s for kernel "
 922  921                              "providers is supported in the %2$s zone only"),
 923  922                              "enable", "global");
 924  923                          rc = FAILURE;
↓ open down ↓ 30 lines elided ↑ open up ↑
 955  954  
 956  955          if (argc < 3) {
 957  956                  usage();
 958  957                  return (ERROR_USAGE);
 959  958          }
 960  959  
 961  960          prov = get_provider(argc, argv);
 962  961          if (prov == NULL ||
 963  962              prov->cp_type == PROV_BADNAME || prov->cp_type == PROV_KEF_HARD) {
 964  963                  /*
 965      -                 * TRANSLATION_NOTE:
      964 +                 * TRANSLATION_NOTE
 966  965                   * "install" could be either a literal keyword and hence
 967  966                   * not to be translated, or a verb and translatable.  A
 968  967                   * choice was made to view it as a literal keyword.
 969  968                   */
 970  969                  cryptoerror(LOG_STDERR,
 971  970                      gettext("bad provider name for %s."), "install");
 972  971                  rc = FAILURE;
 973  972                  goto out;
 974  973          }
 975  974  
 976  975          if (prov->cp_type == PROV_UEF_LIB) {
 977  976                  rc = install_uef_lib(prov->cp_name);
 978  977                  goto out;
 979  978          }
 980  979  
 981  980          /* It is the PROV_KEF_SOFT type now  */
 982  981  
 983  982          /* check if there are mechanism operands */
 984  983          if (argc < 4) {
 985  984                  /*
 986      -                 * TRANSLATION_NOTE:
      985 +                 * TRANSLATION_NOTE
 987  986                   * "mechanism" could be either a literal keyword and hence
 988  987                   * not to be translated, or a descriptive word and
 989  988                   * translatable.  A choice was made to view it as a literal
 990  989                   * keyword.
 991  990                   */
 992  991                  cryptoerror(LOG_STDERR,
 993  992                      gettext("need %s operands for installing a"
 994  993                      " kernel software provider."), "mechanism");
 995  994                  rc = ERROR_USAGE;
 996  995                  goto out;
 997  996          }
 998  997  
 999  998          if ((rc = process_mech_operands(argc, argv, B_FALSE)) != SUCCESS) {
1000  999                  goto out;
1001 1000          }
1002 1001  
1003 1002          if (allflag == B_TRUE) {
1004 1003                  /*
1005      -                 * TRANSLATION_NOTE:
     1004 +                 * TRANSLATION_NOTE
1006 1005                   * "all", "mechanism", and "install" are all keywords and
1007 1006                   * not to be translated.
1008 1007                   */
1009 1008                  cryptoerror(LOG_STDERR,
1010 1009                      gettext("can not use the %1$s keyword for %2$s "
1011 1010                      "in the %3$s subcommand."), "all", "mechanism", "install");
1012 1011                  rc = ERROR_USAGE;
1013 1012                  goto out;
1014 1013          }
1015 1014  
1016 1015          if (getzoneid() == GLOBAL_ZONEID) {
1017 1016                  rc = install_kef(prov->cp_name, mecharglist);
1018 1017          } else {
1019 1018                  /*
1020      -                 * TRANSLATION_NOTE:
     1019 +                 * TRANSLATION_NOTE
1021 1020                   * "install" could be either a literal keyword and hence
1022 1021                   * not to be translated, or a verb and translatable.  A
1023 1022                   * choice was made to view it as a literal keyword.
1024 1023                   * "global" is keyword and not to be translated.
1025 1024                   */
1026 1025                  cryptoerror(LOG_STDERR, gettext("%1$s for kernel providers "
1027 1026                      "is supported in the %2$s zone only"), "install", "global");
1028 1027                  rc = FAILURE;
1029 1028          }
1030 1029  out:
↓ open down ↓ 14 lines elided ↑ open up ↑
1045 1044  
1046 1045          if (argc != 3) {
1047 1046                  usage();
1048 1047                  return (ERROR_USAGE);
1049 1048          }
1050 1049  
1051 1050          prov = get_provider(argc, argv);
1052 1051          if (prov == NULL ||
1053 1052              prov->cp_type == PROV_BADNAME || prov->cp_type == PROV_KEF_HARD) {
1054 1053                  /*
1055      -                 * TRANSLATION_NOTE:
     1054 +                 * TRANSLATION_NOTE
1056 1055                   * "uninstall" could be either a literal keyword and hence
1057 1056                   * not to be translated, or a verb and translatable.  A
1058 1057                   * choice was made to view it as a literal keyword.
1059 1058                   */
1060 1059                  cryptoerror(LOG_STDERR,
1061 1060                      gettext("bad provider name for %s."), "uninstall");
1062 1061                  free(prov);
1063 1062                  return (FAILURE);
1064 1063          }
1065 1064  
1066 1065          if (prov->cp_type == PROV_UEF_LIB) {
1067 1066                  rc = uninstall_uef_lib(prov->cp_name);
1068 1067          } else if (prov->cp_type == PROV_KEF_SOFT) {
1069 1068                  if (getzoneid() == GLOBAL_ZONEID) {
1070 1069                          rc = uninstall_kef(prov->cp_name);
1071 1070                  } else {
1072 1071                          /*
1073      -                         * TRANSLATION_NOTE:
     1072 +                         * TRANSLATION_NOTE
1074 1073                           * "uninstall" could be either a literal keyword and
1075 1074                           * hence not to be translated, or a verb and
1076 1075                           * translatable.  A choice was made to view it as a
1077 1076                           * literal keyword.  "global" is keyword and not to
1078 1077                           * be translated.
1079 1078                           */
1080 1079                          cryptoerror(LOG_STDERR, gettext("%1$s for kernel "
1081 1080                              "providers is supported in the %2$s zone only"),
1082 1081                              "uninstall", "global");
1083 1082                          rc = FAILURE;
↓ open down ↓ 31 lines elided ↑ open up ↑
1115 1114          if (prov->cp_type != PROV_KEF_SOFT) {
1116 1115                  cryptoerror(LOG_STDERR,
1117 1116                      gettext("%s is not a valid kernel software provider."),
1118 1117                      prov->cp_name);
1119 1118                  rc = FAILURE;
1120 1119                  goto out;
1121 1120          }
1122 1121  
1123 1122          if (getzoneid() != GLOBAL_ZONEID) {
1124 1123                  /*
1125      -                 * TRANSLATION_NOTE:
     1124 +                 * TRANSLATION_NOTE
1126 1125                   * "unload" could be either a literal keyword and hence
1127 1126                   * not to be translated, or a verb and translatable.
1128 1127                   * A choice was made to view it as a literal keyword.
1129 1128                   * "global" is keyword and not to be translated.
1130 1129                   */
1131 1130                  cryptoerror(LOG_STDERR, gettext("%1$s for kernel providers "
1132 1131                      "is supported in the %2$s zone only"), "unload", "global");
1133 1132                  rc = FAILURE;
1134 1133                  goto out;
1135 1134          }
↓ open down ↓ 239 lines elided ↑ open up ↑
1375 1374          char    devname[MAXNAMELEN];
1376 1375          int     inst_num;
1377 1376          int     count;
1378 1377          int     i;
1379 1378          int     rv;
1380 1379          int     rc = SUCCESS;
1381 1380  
1382 1381          /* get user-level providers */
1383 1382          (void) printf(gettext("\nUser-level providers:\n"));
1384 1383          /*
1385      -         * TRANSLATION_NOTE:
     1384 +         * TRANSLATION_NOTE
1386 1385           * Strictly for appearance's sake, this line should be as long as
1387 1386           * the length of the translated text above.
1388 1387           */
1389 1388          (void) printf(gettext("=====================\n"));
1390 1389          if (get_pkcs11conf_info(&pliblist) != SUCCESS) {
1391 1390                  cryptoerror(LOG_STDERR, gettext("failed to retrieve "
1392 1391                      "the list of user-level providers.\n"));
1393 1392                  rc = FAILURE;
1394 1393          }
1395 1394  
↓ open down ↓ 9 lines elided ↑ open up ↑
1405 1404                                  rc = FAILURE;
1406 1405                          }
1407 1406                  }
1408 1407                  plibptr = plibptr->next;
1409 1408          }
1410 1409          free_uentrylist(pliblist);
1411 1410  
1412 1411          /* get kernel software providers */
1413 1412          (void) printf(gettext("\nKernel software providers:\n"));
1414 1413          /*
1415      -         * TRANSLATION_NOTE:
     1414 +         * TRANSLATION_NOTE
1416 1415           * Strictly for appearance's sake, this line should be as long as
1417 1416           * the length of the translated text above.
1418 1417           */
1419 1418          (void) printf(gettext("==========================\n"));
1420 1419          if (getzoneid() == GLOBAL_ZONEID) {
1421 1420                  /* use kcf.conf for kernel software providers in global zone */
1422 1421                  pdevlist_conf = NULL;
1423 1422                  psoftlist_conf = NULL;
1424 1423  
1425 1424                  if (get_kcfconf_info(&pdevlist_conf, &psoftlist_conf) !=
↓ open down ↓ 54 lines elided ↑ open up ↑
1480 1479                          ptr = ptr->next;
1481 1480                  }
1482 1481  
1483 1482                  free_entrylist(pdevlist_zone);
1484 1483                  free_entrylist(psoftlist_zone);
1485 1484          }
1486 1485  
1487 1486          /* Get kernel hardware providers and their mechanism lists */
1488 1487          (void) printf(gettext("\nKernel hardware providers:\n"));
1489 1488          /*
1490      -         * TRANSLATION_NOTE:
     1489 +         * TRANSLATION_NOTE
1491 1490           * Strictly for appearance's sake, this line should be as long as
1492 1491           * the length of the translated text above.
1493 1492           */
1494 1493          (void) printf(gettext("==========================\n"));
1495 1494          if (get_dev_list(&pdevlist_kernel) != SUCCESS) {
1496 1495                  cryptoerror(LOG_STDERR, gettext("failed to retrieve "
1497 1496                      "the list of hardware providers.\n"));
1498 1497                  return (FAILURE);
1499 1498          }
1500 1499  
↓ open down ↓ 34 lines elided ↑ open up ↑
1535 1534          entrylist_t     *ptr;
1536 1535          entrylist_t     *phead;
1537 1536          boolean_t       found;
1538 1537          char    provname[MAXNAMELEN];
1539 1538          int     i;
1540 1539          int     rc = SUCCESS;
1541 1540  
1542 1541          /* Get user-level providers */
1543 1542          (void) printf(gettext("\nUser-level providers:\n"));
1544 1543          /*
1545      -         * TRANSLATION_NOTE:
     1544 +         * TRANSLATION_NOTE
1546 1545           * Strictly for appearance's sake, this line should be as long as
1547 1546           * the length of the translated text above.
1548 1547           */
1549 1548          (void) printf(gettext("=====================\n"));
1550 1549          if (get_pkcs11conf_info(&pliblist) == FAILURE) {
1551 1550                  cryptoerror(LOG_STDERR, gettext("failed to retrieve "
1552 1551                      "the list of user-level providers.\n"));
1553 1552          } else {
1554 1553                  plibptr = pliblist;
1555 1554                  while (plibptr != NULL) {
↓ open down ↓ 6 lines elided ↑ open up ↑
1562 1561                                  }
1563 1562                          }
1564 1563                          plibptr = plibptr->next;
1565 1564                  }
1566 1565                  free_uentrylist(pliblist);
1567 1566          }
1568 1567  
1569 1568          /* kernel software providers */
1570 1569          (void) printf(gettext("\nKernel software providers:\n"));
1571 1570          /*
1572      -         * TRANSLATION_NOTE:
     1571 +         * TRANSLATION_NOTE
1573 1572           * Strictly for appearance's sake, this line should be as long as
1574 1573           * the length of the translated text above.
1575 1574           */
1576 1575          (void) printf(gettext("==========================\n"));
1577 1576  
1578 1577          /* Get all entries from the kcf.conf file */
1579 1578          pdevlist_conf = NULL;
1580 1579          if (getzoneid() == GLOBAL_ZONEID) {
1581 1580                  /* use kcf.conf for kernel software providers in global zone */
1582 1581                  psoftlist_conf = NULL;
↓ open down ↓ 10 lines elided ↑ open up ↑
1593 1592                  while (ptr != NULL) {
1594 1593                          (void) list_policy_for_soft(ptr->pent->name);
1595 1594                          ptr = ptr->next;
1596 1595                  }
1597 1596  
1598 1597                  free_entrylist(psoftlist_conf);
1599 1598          } else {
1600 1599                  /* kcf.conf not there in non-global zone, no policy info */
1601 1600  
1602 1601                  /*
1603      -                 * TRANSLATION_NOTE:
     1602 +                 * TRANSLATION_NOTE
1604 1603                   * "global" is keyword and not to be translated.
1605 1604                   */
1606 1605                  cryptoerror(LOG_STDERR, gettext(
1607 1606                      "policy information for kernel software providers is "
1608 1607                      "available in the %s zone only"), "global");
1609 1608          }
1610 1609  
1611 1610          /* Kernel hardware providers */
1612 1611          (void) printf(gettext("\nKernel hardware providers:\n"));
1613 1612          /*
1614      -         * TRANSLATION_NOTE:
     1613 +         * TRANSLATION_NOTE
1615 1614           * Strictly for appearance's sake, this line should be as long as
1616 1615           * the length of the translated text above.
1617 1616           */
1618 1617          (void) printf(gettext("==========================\n"));
1619 1618  
1620 1619          if (getzoneid() != GLOBAL_ZONEID) {
1621 1620                  /*
1622      -                 * TRANSLATION_NOTE:
     1621 +                 * TRANSLATION_NOTE
1623 1622                   * "global" is keyword and not to be translated.
1624 1623                   */
1625 1624                  cryptoerror(LOG_STDERR, gettext(
1626 1625                      "policy information for kernel hardware providers is "
1627 1626                      "available in the %s zone only"), "global");
1628 1627                  return (FAILURE);
1629 1628          }
1630 1629  
1631 1630          /* Get the hardware provider list from kernel */
1632 1631          if (get_dev_list(&pdevlist_kernel) != SUCCESS) {
↓ open down ↓ 59 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX