Поскольку статическое увеличение размера для этих двух строк не приемлемо по множеству причин, то необходимо динамическое выделение. Так что сделаю цитату своего же высказывания, чтобы не искать. Человек (в моем лице) склонен забывать некоторые свои идеи к сожалению.Serge wrote:Последний параметр не зарезервирован. Это полный путь к программе.Максимальная длина командной строки 256 символов включая ноль. Максимальная длина пути 1024 символа включая ноль.Code: Select all
struc APP_HEADER_01 { .banner dq ? .version dd ? ;+8 .start dd ? ;+12 .i_end dd ? ;+16 .mem_size dd ? ;+20 .stack_top dd ? ;+24 .i_param dd ? ;+28 .i_icon dd ? ;+32 название странное, но это путь к программе }
Будет время - займусь реализацией, если никто раньше не сделает.Mario_r4 wrote:Можно create_app_space вызывать со скорректированным hdr_mem, и подменить на скорректированный адрес hdr_cmdline при вызове set_app_params. Можно сделать для всех приложений, тогда у многих останется пустая старая область в 256 байт, которую можно ликвидировать правкой кода с перекомпиляцией, либо ввести в заголовке вместо адреса особый указатель (допустим "-1" или 0xffffffff), по которому ядро будет решать действовать по старому (256 символов) или по новому (динамически выделенная память). Ядерный буфер параметров тоже придется сделать динамически выделяемым/освобождаемым, так как стека действительно может не хватить.