1. C++ / Говнокод #22693

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    *模块*库路径的HAL /  
    #哈尔图书馆定义_ _ path1”/系统/硬件/库”  
    # define哈尔图书馆”_ _ PATH /供应商/图书馆/ HW”  
      
    *  
    *有一套不同的模块文件。形式的文件名  
    *“< > _ ID模块。variant.so”这样的LED模块,它的梦想  
    *“基地”ro.product.board”、“ro.board.platform”和“ro.arch”将是:  
    * * * * * * *  
    * led.trout.so  
    * led.msm7k.so  
    * led.armv6.so  
    * led.default.so  
    */  
      
    静态const char*变量_键〔〕={  
    “ro.hardware / *这是第一”,这样它可以拿起一个不同  
    文件上的模拟器。*/  
    “ro.product.board”  
    “ro.board.platform”  
    “ro.arch”  
    };  
      
    static const int哈尔_ variant _键_ count=  
    (sizeof(variant _键/ sizeof(variant)_键[ 0 ]);  
      
    …………………  
      
    _ int get _硬件模块(const char * const struct模块硬件ID,_ _ T *模块)  
    {  
    国际地位;  
    int i;  
    _ const struct模块_ HMI硬件T * = null;  
    [路径] _最大字符道具;  
    [最大] _字符路径路径;  
      
    /*  
    *我们依赖的事实,在多次调用dlopen  
    *一样简单(可能要增加一refcount和不负载  
    *新复制库)。  
    *我们认为dlopen()是线程安全的。  
    */  
      
    /*循环通过它寻找一个模块配置*/  
    for(i=0;i<哈尔_ variant _键_ count + 1;i++){  
    if(i<哈尔_ variant _键_ count){  
    if(物业_ get(variant _键[我],丙,0)==0){  
    继续;  
    }  
      
    snprintf sizeof(Path(路径),“%s(%s)s.so”  
    哈尔_图书馆_ path1,ID,PROP);  
    if((R _访问路径,OK)==0)break;  
      
    snprintf sizeof(Path(路径),“%s(%s)s.so”  
    哈尔_图书馆_ PATH,ID,PROP);  
    if((R _访问路径,OK)==0)break;  
    } {  
    snprintf sizeof(Path(路径)“,,,s.default.so % / %“  
    哈尔_图书馆_ path1,身份证);  
    if((R _访问路径,OK)==0)break;  
    }  
    }  
      
    状态= enoent;  
    if(i<哈尔_ variant _键_数+ 1){  
    /*模块加载,如果失败了,我们是注定,我们不应该尝试  
    *负载不同的变体。*/  
    身份(ID =负载路径,模块);  
    }  
      
    返回状态;  
    }

    Китайцы пишут прошивку.

    Запостил: Pythoner, 28 Марта 2017

    Комментарии (131) RSS

    Добавить комментарий