1*203d8a4aSSong Shan Gong #include <unistd.h> 2*203d8a4aSSong Shan Gong #include <stdio.h> 3*203d8a4aSSong Shan Gong #include <string.h> 4*203d8a4aSSong Shan Gong #include "util.h" 5*203d8a4aSSong Shan Gong #include "machine.h" 6*203d8a4aSSong Shan Gong #include "api/fs/fs.h" 7*203d8a4aSSong Shan Gong 8*203d8a4aSSong Shan Gong int arch__fix_module_text_start(u64 *start, const char *name) 9*203d8a4aSSong Shan Gong { 10*203d8a4aSSong Shan Gong char path[PATH_MAX]; 11*203d8a4aSSong Shan Gong 12*203d8a4aSSong Shan Gong snprintf(path, PATH_MAX, "module/%.*s/sections/.text", 13*203d8a4aSSong Shan Gong (int)strlen(name) - 2, name + 1); 14*203d8a4aSSong Shan Gong 15*203d8a4aSSong Shan Gong if (sysfs__read_ull(path, (unsigned long long *)start) < 0) 16*203d8a4aSSong Shan Gong return -1; 17*203d8a4aSSong Shan Gong 18*203d8a4aSSong Shan Gong return 0; 19*203d8a4aSSong Shan Gong } 20