Yes. The priority flag needs to be implemented only in the addMapping, It would add the new path to the beginning, instead of last position (default behavior).
However, making a deeper analysis, maybe a priority flag is not even needed. I'll explain it below with an example.
In theory, if the priority flag is used, the specified path would have precedence over any other existing map path.
I say "in theory" because that's true only at the moment of add the path. If other parent paths are added later with priority flag, they will void the other paths. This gets worse if multiple homebrews are doing the same.
e.g.
sys_map_path("/app_home/PS3_GAME", "/dev_hdd0/GAMES/XXX/PS3_GAME", MAP_PRIORITY); // priority is irrelevant here
sys_map_path("/app_home", "/dev_hdd0/GAMES/XXX/PS3_GAME/USRDIR", MAP_PRIORITY); // priority forces this to be the first
The first remap will never reached, because /app_home is processed first. /app_home/PS3_GAME would be searched in /dev_hdd0/GAMES/XXX/PS3_GAME/USRDIR/PS3_GAME
This could be improved, if the findMapping would search the whole list trying to find the longer matching path, instead of stop in the first map path like it is currently.
So, /app_home/PS3_GAME should not stop in the first remap (/app_home). It have to continue checking the list to see if there is a longer path that also matches. In the example: /app_home/PS3_GAME