0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #include "dscr.h"
0020
0021 static int check_dscr(char *str)
0022 {
0023 unsigned long cur_dscr, cur_dscr_usr;
0024
0025 cur_dscr = get_dscr();
0026 cur_dscr_usr = get_dscr_usr();
0027 if (cur_dscr != cur_dscr_usr) {
0028 printf("%s set, kernel get %lx != user get %lx\n",
0029 str, cur_dscr, cur_dscr_usr);
0030 return 1;
0031 }
0032 return 0;
0033 }
0034
0035 int dscr_user(void)
0036 {
0037 int i;
0038
0039 SKIP_IF(!have_hwcap2(PPC_FEATURE2_DSCR));
0040
0041 check_dscr("");
0042
0043 for (i = 0; i < COUNT; i++) {
0044 set_dscr(i);
0045 if (check_dscr("kernel"))
0046 return 1;
0047 }
0048
0049 for (i = 0; i < COUNT; i++) {
0050 set_dscr_usr(i);
0051 if (check_dscr("user"))
0052 return 1;
0053 }
0054 return 0;
0055 }
0056
0057 int main(int argc, char *argv[])
0058 {
0059 return test_harness(dscr_user, "dscr_user_test");
0060 }