Big changes, starting to divided up i .c and .h files
This commit is contained in:
1 parent
d5bc5e8958
commit
ec61cd8b8a
11 files changed
+2666
-1324
No files matched your search
@@ -1,4 +1,4 @@
|
||||
bcc -S main.c
|
||||
bcc -S main.c implementation/lsfs.c
|
||||
echo -e "push bp
|
||||
mov bp,sp
|
||||
push 10[bp]
|
||||
|
||||
@@ -1,749 +0,0 @@
|
||||
std_singos/string.h:257.6: error: need '{'
|
||||
std_singos/string.h:257.17: error: size_t undeclared
|
||||
std_singos/string.h:257.17: error: need ';'
|
||||
std_singos/string.h:263.16: error: NULL undeclared
|
||||
std_singos/string.h:263.16: error: compiler bug? - botched implicit cast
|
||||
std_singos/string.h:267.14: error: bad expression
|
||||
std_singos/string.h:267.32: error: need ';'
|
||||
std_singos/string.h:267.40: error: length undeclared
|
||||
std_singos/string.h:267.47: error: chars undeclared
|
||||
std_singos/string.h:268.8: error: need ';'
|
||||
std_singos/string.h:268.8: error: bad expression
|
||||
std_singos/string.h:268.12: error: need ';'
|
||||
std_singos/string.h:268.12: error: bad expression
|
||||
std_singos/string.h:268.19: error: need ';'
|
||||
std_singos/string.h:269.4: error: bad expression
|
||||
std_singos/string.h:281.16: error: compiler bug? - botched implicit cast
|
||||
std_singos/stdio.h:1.4: error: bad expression
|
||||
std_singos/stdio.h:1.10: error: need ';'
|
||||
std_singos/stdio.h:1.18: error: string undeclared
|
||||
std_singos/stdio.h:3.4: error: bad expression
|
||||
std_singos/stdio.h:3.10: error: need ';'
|
||||
std_singos/stdio.h:4.4: error: need ';'
|
||||
std_singos/stdio.h:4.4: error: bad expression
|
||||
std_singos/stdio.h:15.4: error: bad expression
|
||||
std_singos/stdio.h:15.16: error: need ';'
|
||||
std_singos/stdio.h:15.26: error: argument undeclared
|
||||
std_singos/stdio.h:16.1: error: need ';'
|
||||
std_singos/stdio.h:34.21: error: input undeclared
|
||||
std_singos/stdio.h:35.4: error: need ';'
|
||||
std_singos/stdio.h:35.4: error: bad expression
|
||||
std_singos/stdio.h:37.17: error: compiler bug? - botched implicit cast
|
||||
std_singos/stdio.h:40.4: error: bad expression
|
||||
std_singos/stdio.h:40.12: error: need ';'
|
||||
std_singos/stdio.h:41.4: error: need ';'
|
||||
std_singos/stdio.h:41.4: error: bad expression
|
||||
std_singos/stdio.h:53.4: error: bad expression
|
||||
std_singos/stdio.h:53.18: error: need ';'
|
||||
std_singos/stdio.h:54.1: error: need ';'
|
||||
driver/disk.h:1.3: error: bad expression
|
||||
driver/disk.h:1.18: error: need ';'
|
||||
driver/disk.h:1.25: error: index undeclared
|
||||
driver/disk.h:1.41: error: number_sectors undeclared
|
||||
driver/disk.h:1.54: error: data_buffer undeclared
|
||||
driver/disk.h:1.75: error: data_buffer_segment undeclared
|
||||
driver/disk.h:2.3: error: bad expression
|
||||
driver/disk.h:2.36: error: need ';'
|
||||
driver/disk.h:4.3: error: bad expression
|
||||
driver/disk.h:4.36: error: need ';'
|
||||
driver/disk.h:5.4: error: need ';'
|
||||
driver/disk.h:5.4: error: bad expression
|
||||
driver/disk.h:6.4: error: bad expression
|
||||
driver/disk.h:6.19: error: need ';'
|
||||
driver/disk.h:7.4: error: bad expression
|
||||
driver/disk.h:8.3: error: bad expression
|
||||
driver/disk.h:8.23: error: need ';'
|
||||
main.c:21.4: error: bad expression
|
||||
main.c:21.12: error: need ';'
|
||||
main.c:22.4: error: bad expression
|
||||
main.c:22.16: error: need ';'
|
||||
main.c:23.4: error: bad expression
|
||||
main.c:23.18: error: need ';'
|
||||
main.c:25.7: error: bad expression
|
||||
main.c:25.14: error: need ';'
|
||||
main.c:25.14: error: bad expression
|
||||
main.c:25.30: error: need ';'
|
||||
main.c:25.46: error: Directory_Table undeclared
|
||||
main.c:25.46: error: need ';'
|
||||
main.c:26.7: error: bad expression
|
||||
main.c:26.14: error: need ';'
|
||||
main.c:26.14: error: bad expression
|
||||
main.c:26.33: error: need ';'
|
||||
main.c:26.45: error: Struct_Table_Entry undeclared
|
||||
main.c:26.45: error: need ';'
|
||||
main.c:26.46: error: Table_Entry undeclared
|
||||
main.c:27.7: error: bad expression
|
||||
main.c:27.14: error: need ';'
|
||||
main.c:27.14: error: bad expression
|
||||
main.c:27.39: error: need ';'
|
||||
main.c:27.57: error: struct_partition_control undeclared
|
||||
main.c:27.57: error: need ';'
|
||||
main.c:27.58: error: partition_control undeclared
|
||||
main.c:28.7: error: bad expression
|
||||
main.c:28.14: error: need ';'
|
||||
main.c:28.14: error: bad expression
|
||||
main.c:28.46: error: need ';'
|
||||
main.c:28.51: error: File_System_Control_Information undeclared
|
||||
main.c:28.51: error: need ';'
|
||||
main.c:28.52: error: FSCI undeclared
|
||||
main.c:29.7: error: bad expression
|
||||
main.c:29.14: error: need ';'
|
||||
main.c:29.14: error: bad expression
|
||||
main.c:29.38: error: need ';'
|
||||
main.c:29.42: error: meta_information_format undeclared
|
||||
main.c:29.42: error: need ';'
|
||||
main.c:29.43: error: mif undeclared
|
||||
main.c:30.7: error: bad expression
|
||||
main.c:30.14: error: need ';'
|
||||
main.c:30.14: error: bad expression
|
||||
main.c:30.25: error: need ';'
|
||||
main.c:30.36: error: tag_record undeclared
|
||||
main.c:30.36: error: need ';'
|
||||
main.c:31.7: error: bad expression
|
||||
main.c:31.14: error: need ';'
|
||||
main.c:31.14: error: bad expression
|
||||
main.c:31.24: error: need ';'
|
||||
main.c:31.34: error: lsfs_file undeclared
|
||||
main.c:31.34: error: need ';'
|
||||
main.c:32.7: error: bad expression
|
||||
main.c:32.14: error: need ';'
|
||||
main.c:32.14: error: bad expression
|
||||
main.c:32.31: error: need ';'
|
||||
main.c:32.48: error: Parameter_Struct undeclared
|
||||
main.c:32.48: error: need ';'
|
||||
main.c:34.7: error: bad expression
|
||||
main.c:34.12: error: need ';'
|
||||
main.c:34.12: error: bad expression
|
||||
main.c:34.29: error: need ';'
|
||||
main.c:35.1: error: Table_Entry_Kind undeclared
|
||||
main.c:35.1: error: need ';'
|
||||
main.c:37.17: error: ENTRY_EMPTY undeclared
|
||||
main.c:38.16: error: ENTRY_FILE undeclared
|
||||
main.c:39.21: error: ENTRY_DIRECTORY undeclared
|
||||
main.c:40.1: error: bad expression
|
||||
main.c:40.18: error: need ';'
|
||||
main.c:42.7: error: bad expression
|
||||
main.c:42.12: error: need ';'
|
||||
main.c:42.12: error: bad expression
|
||||
main.c:42.27: error: need ';'
|
||||
main.c:43.1: error: Service_Action undeclared
|
||||
main.c:43.1: error: need ';'
|
||||
main.c:44.24: error: SERIVCE_LOAD_DISK undeclared
|
||||
main.c:45.24: error: SERVICE_FIND_ENTRY undeclared
|
||||
main.c:46.24: error: SERIVCE_READ_DATA undeclared
|
||||
main.c:47.24: error: SERIVCE_WRITE_DATA undeclared
|
||||
main.c:49.1: error: bad expression
|
||||
main.c:49.16: error: need ';'
|
||||
main.c:51.6: error: bad expression
|
||||
main.c:51.25: error: need ';'
|
||||
main.c:52.1: error: need ';'
|
||||
main.c:67.6: error: bad expression
|
||||
main.c:67.38: error: need ';'
|
||||
main.c:68.1: error: need ';'
|
||||
main.c:82.7: error: bad expression
|
||||
main.c:82.14: error: need ';'
|
||||
main.c:82.14: error: bad expression
|
||||
main.c:82.30: error: need ';'
|
||||
main.c:83.1: error: need ';'
|
||||
main.c:84.23: error: need ';'
|
||||
main.c:84.24: error: entries undeclared
|
||||
main.c:84.29: error: illegal indirection
|
||||
main.c:88.6: error: bad expression
|
||||
main.c:88.23: error: need ';'
|
||||
main.c:89.1: error: need ';'
|
||||
main.c:97.31: error: need ';'
|
||||
main.c:97.32: error: entry_kind undeclared
|
||||
main.c:100.3: error: bad expression
|
||||
main.c:100.8: error: need ';'
|
||||
main.c:100.18: error: selector undeclared
|
||||
main.c:100.45: error: pointer_parameter_segment undeclared
|
||||
main.c:100.71: error: pointer_parameter_struct undeclared
|
||||
main.c:101.3: error: need ';'
|
||||
main.c:101.3: error: bad expression
|
||||
main.c:101.12: error: need ';'
|
||||
main.c:102.4: error: bad expression
|
||||
main.c:103.4: error: bad expression
|
||||
main.c:108.13: error: need ';'
|
||||
main.c:108.14: error: fsci undeclared
|
||||
main.c:109.33: error: need ';'
|
||||
main.c:109.34: error: service_action undeclared
|
||||
main.c:110.33: error: need ';'
|
||||
main.c:110.34: error: current_table undeclared
|
||||
main.c:111.37: error: need ';'
|
||||
main.c:111.38: error: parameter_struct undeclared
|
||||
main.c:112.7: error: bad expression
|
||||
main.c:112.21: error: need ';'
|
||||
main.c:112.23: error: local_segment undeclared
|
||||
main.c:113.7: error: bad expression
|
||||
main.c:113.21: error: need ';'
|
||||
main.c:113.23: error: stack_segment undeclared
|
||||
main.c:114.7: error: bad expression
|
||||
main.c:114.19: error: need ';'
|
||||
main.c:114.20: error: path_length undeclared
|
||||
main.c:115.8: error: bad expression
|
||||
main.c:115.22: error: need ';'
|
||||
main.c:115.23: error: index_as_long undeclared
|
||||
main.c:117.8: error: bad expression
|
||||
main.c:117.19: error: need ';'
|
||||
main.c:117.20: error: local_path undeclared
|
||||
main.c:117.24: error: illegal indirection
|
||||
main.c:122.31: error: constant expression required
|
||||
main.c:132.51: error: undefined structure element
|
||||
main.c:135.32: error: constant expression required
|
||||
main.c:140.35: error: illegal indirection
|
||||
main.c:143.71: error: illegal indirection
|
||||
main.c:146.48: error: illegal indirection
|
||||
main.c:146.59: error: compiler bug? - taking address of non-lvalue
|
||||
main.c:148.48: error: illegal indirection
|
||||
main.c:148.59: error: compiler bug? - taking address of non-lvalue
|
||||
main.c:150.48: error: illegal indirection
|
||||
main.c:150.59: error: compiler bug? - taking address of non-lvalue
|
||||
main.c:153.31: error: constant expression required
|
||||
main.c:166.32: error: constant expression required
|
||||
main.c:176.10: error: duplicate case in switch
|
||||
main.c:176.10: error: duplicate case in switch
|
||||
main.c:176.10: error: duplicate case in switch
|
||||
main.c:176.13: error: compiler bug? - botched implicit cast
|
||||
main.c:eof: error: need '}'
|
||||
main.c:eof: error: need '}'
|
||||
main.c:eof: error: need '}'
|
||||
01923 .fail 209 errors detected
|
||||
***** junk after operands...............................^
|
||||
00006 000C E8 0000 call _main
|
||||
***** unbound label..................................^
|
||||
***** relocation impossible...............................^
|
||||
00339 0119 E8 0000 call _malloc
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible....................................^
|
||||
00610 0242 E8 0000 call _lsfs_create_string
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible................................................^
|
||||
00688 02B1 E8 0000 call _lsfs_create_string
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible................................................^
|
||||
00736 fail! std_singos/string.h:257.6: error: need '{'
|
||||
***** user-generated error..........................^
|
||||
00741 fail! std_singos/string.h:257.17: error: size_t undeclared
|
||||
***** user-generated error..........................^
|
||||
00743 fail! std_singos/string.h:257.17: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00751 fail! std_singos/string.h:263.16: error: NULL undeclared
|
||||
***** user-generated error..........................^
|
||||
00752 fail! std_singos/string.h:263.16: error: compiler bug? - botched implicit cast
|
||||
***** user-generated error..........................^
|
||||
00769 fail! std_singos/string.h:267.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00771 fail! std_singos/string.h:267.32: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00772 fail! std_singos/string.h:267.40: error: length undeclared
|
||||
***** user-generated error..........................^
|
||||
00773 fail! std_singos/string.h:267.47: error: chars undeclared
|
||||
***** user-generated error..........................^
|
||||
00783 031F E8 0000 call _lsfs_create_string
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible................................................^
|
||||
00788 fail! std_singos/string.h:268.8: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00789 fail! std_singos/string.h:268.8: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00791 fail! std_singos/string.h:268.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00792 fail! std_singos/string.h:268.12: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00794 fail! std_singos/string.h:268.19: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00797 fail! std_singos/string.h:269.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00815 fail! std_singos/string.h:281.16: error: compiler bug? - botched implicit cast
|
||||
***** user-generated error..........................^
|
||||
00832 fail! std_singos/stdio.h:1.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00834 fail! std_singos/stdio.h:1.10: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00835 fail! std_singos/stdio.h:1.18: error: string undeclared
|
||||
***** user-generated error..........................^
|
||||
00839 0348 E8 0000 call _print
|
||||
***** relocation impossible...................................^
|
||||
***** unbound label.....................................^
|
||||
00845 fail! std_singos/stdio.h:3.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00847 fail! std_singos/stdio.h:3.10: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00852 0351 E8 0000 call _print
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...................................^
|
||||
00856 fail! std_singos/stdio.h:4.4: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00857 fail! std_singos/stdio.h:4.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00880 fail! std_singos/stdio.h:15.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00882 fail! std_singos/stdio.h:15.16: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00883 fail! std_singos/stdio.h:15.26: error: argument undeclared
|
||||
***** user-generated error..........................^
|
||||
00888 036B E8 0000 call _print_stack
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible.........................................^
|
||||
00892 fail! std_singos/stdio.h:16.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00917 fail! std_singos/stdio.h:34.21: error: input undeclared
|
||||
***** user-generated error..........................^
|
||||
00922 0388 E8 0000 call _dump_ax_return
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible............................................^
|
||||
00926 fail! std_singos/stdio.h:35.4: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00927 fail! std_singos/stdio.h:35.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00935 fail! std_singos/stdio.h:37.17: error: compiler bug? - botched implicit cast
|
||||
***** user-generated error..........................^
|
||||
00951 fail! std_singos/stdio.h:40.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00953 fail! std_singos/stdio.h:40.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00958 03AB E8 0000 call _dump_ax
|
||||
***** relocation impossible.....................................^
|
||||
***** unbound label.....................................^
|
||||
00962 fail! std_singos/stdio.h:41.4: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00963 fail! std_singos/stdio.h:41.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00976 03B9 E8 0000 call _dump_ax_return
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible............................................^
|
||||
00993 fail! std_singos/stdio.h:53.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
00995 fail! std_singos/stdio.h:53.18: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
00998 03C7 E8 0000 call _print_newline
|
||||
***** relocation impossible...........................................^
|
||||
***** unbound label.....................................^
|
||||
01000 fail! std_singos/stdio.h:54.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01019 fail! driver/disk.h:1.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01021 fail! driver/disk.h:1.18: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01022 fail! driver/disk.h:1.25: error: index undeclared
|
||||
***** user-generated error..........................^
|
||||
01023 fail! driver/disk.h:1.41: error: number_sectors undeclared
|
||||
***** user-generated error..........................^
|
||||
01024 fail! driver/disk.h:1.54: error: data_buffer undeclared
|
||||
***** user-generated error..........................^
|
||||
01025 fail! driver/disk.h:1.75: error: data_buffer_segment undeclared
|
||||
***** user-generated error..........................^
|
||||
01035 03E5 E8 0000 call _data_from_disk
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible............................................^
|
||||
01039 fail! driver/disk.h:2.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01041 fail! driver/disk.h:2.36: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01051 03FB E8 0000 call _disk_service_read_data_from_disk
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible..............................................................^
|
||||
01056 fail! driver/disk.h:4.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01059 fail! driver/disk.h:4.36: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01070 0411 E8 0000 call _disk_service_read_data_from_disk
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible..............................................................^
|
||||
01073 fail! driver/disk.h:5.4: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01074 fail! driver/disk.h:5.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01081 fail! driver/disk.h:6.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01083 fail! driver/disk.h:6.19: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01086 fail! driver/disk.h:7.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01093 fail! driver/disk.h:8.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01095 fail! driver/disk.h:8.23: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01159 fail! main.c:21.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01161 fail! main.c:21.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01165 0463 E8 0000 call _dump_ax
|
||||
***** relocation impossible.....................................^
|
||||
***** unbound label.....................................^
|
||||
01170 fail! main.c:22.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01172 fail! main.c:22.16: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01176 046C E8 0000 call _print_stack
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible.........................................^
|
||||
01181 fail! main.c:23.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01183 fail! main.c:23.18: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01185 0471 E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01189 fail! main.c:25.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01191 fail! main.c:25.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01192 fail! main.c:25.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01194 fail! main.c:25.30: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01195 fail! main.c:25.46: error: Directory_Table undeclared
|
||||
***** user-generated error..........................^
|
||||
01197 fail! main.c:25.46: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01200 fail! main.c:26.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01202 fail! main.c:26.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01203 fail! main.c:26.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01205 fail! main.c:26.33: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01206 fail! main.c:26.45: error: Struct_Table_Entry undeclared
|
||||
***** user-generated error..........................^
|
||||
01208 fail! main.c:26.45: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01209 fail! main.c:26.46: error: Table_Entry undeclared
|
||||
***** user-generated error..........................^
|
||||
01212 fail! main.c:27.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01214 fail! main.c:27.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01215 fail! main.c:27.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01217 fail! main.c:27.39: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01218 fail! main.c:27.57: error: struct_partition_control undeclared
|
||||
***** user-generated error..........................^
|
||||
01220 fail! main.c:27.57: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01221 fail! main.c:27.58: error: partition_control undeclared
|
||||
***** user-generated error..........................^
|
||||
01224 fail! main.c:28.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01226 fail! main.c:28.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01227 fail! main.c:28.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01229 fail! main.c:28.46: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01230 fail! main.c:28.51: error: File_System_Control_Information undeclared
|
||||
***** user-generated error..........................^
|
||||
01232 fail! main.c:28.51: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01233 fail! main.c:28.52: error: FSCI undeclared
|
||||
***** user-generated error..........................^
|
||||
01236 fail! main.c:29.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01238 fail! main.c:29.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01239 fail! main.c:29.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01241 fail! main.c:29.38: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01242 fail! main.c:29.42: error: meta_information_format undeclared
|
||||
***** user-generated error..........................^
|
||||
01244 fail! main.c:29.42: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01245 fail! main.c:29.43: error: mif undeclared
|
||||
***** user-generated error..........................^
|
||||
01248 fail! main.c:30.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01250 fail! main.c:30.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01251 fail! main.c:30.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01253 fail! main.c:30.25: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01254 fail! main.c:30.36: error: tag_record undeclared
|
||||
***** user-generated error..........................^
|
||||
01256 fail! main.c:30.36: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01259 fail! main.c:31.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01261 fail! main.c:31.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01262 fail! main.c:31.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01264 fail! main.c:31.24: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01265 fail! main.c:31.34: error: lsfs_file undeclared
|
||||
***** user-generated error..........................^
|
||||
01267 fail! main.c:31.34: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01270 fail! main.c:32.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01272 fail! main.c:32.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01273 fail! main.c:32.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01275 fail! main.c:32.31: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01276 fail! main.c:32.48: error: Parameter_Struct undeclared
|
||||
***** user-generated error..........................^
|
||||
01278 fail! main.c:32.48: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01282 fail! main.c:34.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01284 fail! main.c:34.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01285 fail! main.c:34.12: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01287 fail! main.c:34.29: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01289 fail! main.c:35.1: error: Table_Entry_Kind undeclared
|
||||
***** user-generated error..........................^
|
||||
01291 fail! main.c:35.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01294 fail! main.c:37.17: error: ENTRY_EMPTY undeclared
|
||||
***** user-generated error..........................^
|
||||
01296 fail! main.c:38.16: error: ENTRY_FILE undeclared
|
||||
***** user-generated error..........................^
|
||||
01298 fail! main.c:39.21: error: ENTRY_DIRECTORY undeclared
|
||||
***** user-generated error..........................^
|
||||
01300 fail! main.c:40.1: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01311 fail! main.c:40.18: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01315 fail! main.c:42.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01317 fail! main.c:42.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01318 fail! main.c:42.12: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01320 fail! main.c:42.27: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01322 fail! main.c:43.1: error: Service_Action undeclared
|
||||
***** user-generated error..........................^
|
||||
01324 fail! main.c:43.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01326 fail! main.c:44.24: error: SERIVCE_LOAD_DISK undeclared
|
||||
***** user-generated error..........................^
|
||||
01328 fail! main.c:45.24: error: SERVICE_FIND_ENTRY undeclared
|
||||
***** user-generated error..........................^
|
||||
01330 fail! main.c:46.24: error: SERIVCE_READ_DATA undeclared
|
||||
***** user-generated error..........................^
|
||||
01332 fail! main.c:47.24: error: SERIVCE_WRITE_DATA undeclared
|
||||
***** user-generated error..........................^
|
||||
01335 fail! main.c:49.1: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01349 fail! main.c:49.16: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01353 fail! main.c:51.6: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01355 fail! main.c:51.25: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01358 fail! main.c:52.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01388 fail! main.c:67.6: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01390 fail! main.c:67.38: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01393 fail! main.c:68.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01419 fail! main.c:82.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01421 fail! main.c:82.14: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01422 fail! main.c:82.14: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01424 fail! main.c:82.30: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01427 fail! main.c:83.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01430 fail! main.c:84.23: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01431 fail! main.c:84.24: error: entries undeclared
|
||||
***** user-generated error..........................^
|
||||
01432 fail! main.c:84.29: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01439 fail! main.c:88.6: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01441 fail! main.c:88.23: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01444 fail! main.c:89.1: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01462 fail! main.c:97.31: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01463 fail! main.c:97.32: error: entry_kind undeclared
|
||||
***** user-generated error..........................^
|
||||
01470 fail! main.c:100.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01472 fail! main.c:100.8: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01473 fail! main.c:100.18: error: selector undeclared
|
||||
***** user-generated error..........................^
|
||||
01474 fail! main.c:100.45: error: pointer_parameter_segment undeclared
|
||||
***** user-generated error..........................^
|
||||
01475 fail! main.c:100.71: error: pointer_parameter_struct undeclared
|
||||
***** user-generated error..........................^
|
||||
01484 04AF E8 0000 call _main
|
||||
***** relocation impossible..................................^
|
||||
***** unbound label.....................................^
|
||||
01487 fail! main.c:101.3: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01488 fail! main.c:101.3: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01490 fail! main.c:101.12: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01493 fail! main.c:102.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01500 fail! main.c:103.4: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01512 fail! main.c:108.13: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01513 fail! main.c:108.14: error: fsci undeclared
|
||||
***** user-generated error..........................^
|
||||
01517 fail! main.c:109.33: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01518 fail! main.c:109.34: error: service_action undeclared
|
||||
***** user-generated error..........................^
|
||||
01522 fail! main.c:110.33: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01523 fail! main.c:110.34: error: current_table undeclared
|
||||
***** user-generated error..........................^
|
||||
01527 fail! main.c:111.37: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01528 fail! main.c:111.38: error: parameter_struct undeclared
|
||||
***** user-generated error..........................^
|
||||
01531 fail! main.c:112.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01533 fail! main.c:112.21: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01534 fail! main.c:112.23: error: local_segment undeclared
|
||||
***** user-generated error..........................^
|
||||
01540 fail! main.c:113.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01542 fail! main.c:113.21: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01543 fail! main.c:113.23: error: stack_segment undeclared
|
||||
***** user-generated error..........................^
|
||||
01549 fail! main.c:114.7: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01551 fail! main.c:114.19: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01552 fail! main.c:114.20: error: path_length undeclared
|
||||
***** user-generated error..........................^
|
||||
01555 fail! main.c:115.8: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01557 fail! main.c:115.22: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01558 fail! main.c:115.23: error: index_as_long undeclared
|
||||
***** user-generated error..........................^
|
||||
01562 fail! main.c:117.8: error: bad expression
|
||||
***** user-generated error..........................^
|
||||
01564 fail! main.c:117.19: error: need ';'
|
||||
***** user-generated error..........................^
|
||||
01565 fail! main.c:117.20: error: local_path undeclared
|
||||
***** user-generated error..........................^
|
||||
01566 fail! main.c:117.24: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01579 fail! main.c:122.31: error: constant expression required
|
||||
***** user-generated error..........................^
|
||||
01603 04ED E8 0000 call _disk_service_read_data_from_disk
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible..............................................................^
|
||||
01611 04F7 E8 0000 call _print
|
||||
***** relocation impossible...................................^
|
||||
***** unbound label.....................................^
|
||||
01617 04FC E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01620 fail! main.c:132.51: error: undefined structure element
|
||||
***** user-generated error..........................^
|
||||
01624 0503 E8 0000 call _print_stack
|
||||
***** relocation impossible.........................................^
|
||||
***** unbound label.....................................^
|
||||
01630 0508 E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01636 fail! main.c:135.32: error: constant expression required
|
||||
***** user-generated error..........................^
|
||||
01684 fail! main.c:140.35: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01690 0557 E8 0000 call _print_stack
|
||||
***** relocation impossible.........................................^
|
||||
***** unbound label.....................................^
|
||||
01696 055C E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01699 fail! main.c:143.71: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01712 056E E8 0000 call _disk_service_read_data_from_disk
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible..............................................................^
|
||||
01720 0578 E8 0000 call _print
|
||||
***** relocation impossible...................................^
|
||||
***** unbound label.....................................^
|
||||
01726 057D E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01729 fail! main.c:146.48: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01730 fail! main.c:146.59: error: compiler bug? - taking address of non-lvalue
|
||||
***** user-generated error..........................^
|
||||
01734 0584 E8 0000 call _print_stack
|
||||
***** relocation impossible.........................................^
|
||||
***** unbound label.....................................^
|
||||
01740 0589 E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01743 fail! main.c:148.48: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01744 fail! main.c:148.59: error: compiler bug? - taking address of non-lvalue
|
||||
***** user-generated error..........................^
|
||||
01748 0590 E8 0000 call _print_stack
|
||||
***** relocation impossible.........................................^
|
||||
***** unbound label.....................................^
|
||||
01754 0595 E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01757 fail! main.c:150.48: error: illegal indirection
|
||||
***** user-generated error..........................^
|
||||
01758 fail! main.c:150.59: error: compiler bug? - taking address of non-lvalue
|
||||
***** user-generated error..........................^
|
||||
01762 059C E8 0000 call _print_stack
|
||||
***** relocation impossible.........................................^
|
||||
***** unbound label.....................................^
|
||||
01768 05A1 E8 0000 call _print_newline
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...........................................^
|
||||
01774 fail! main.c:153.31: error: constant expression required
|
||||
***** user-generated error..........................^
|
||||
01784 05AA E8 0000 call _print
|
||||
***** relocation impossible...................................^
|
||||
***** unbound label.....................................^
|
||||
01792 fail! main.c:166.32: error: constant expression required
|
||||
***** user-generated error..........................^
|
||||
01800 05B5 E8 0000 call _print
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...................................^
|
||||
01815 05C0 E8 0000 call _print
|
||||
***** unbound label.....................................^
|
||||
***** relocation impossible...................................^
|
||||
01825 fail! main.c:176.10: error: duplicate case in switch
|
||||
***** user-generated error..........................^
|
||||
01826 fail! main.c:176.10: error: duplicate case in switch
|
||||
***** user-generated error..........................^
|
||||
01827 fail! main.c:176.10: error: duplicate case in switch
|
||||
***** user-generated error..........................^
|
||||
01839 fail! main.c:176.13: error: compiler bug? - botched implicit cast
|
||||
***** user-generated error..........................^
|
||||
01852 fail! main.c:eof: error: need '}'
|
||||
***** user-generated error..........................^
|
||||
01853 fail! main.c:eof: error: need '}'
|
||||
***** user-generated error..........................^
|
||||
01854 fail! main.c:eof: error: need '}'
|
||||
***** user-generated error..........................^
|
||||
01923 .fail 209 errors detected
|
||||
***** junk after operands...............................^
|
||||
***** user-generated error..............................^
|
||||
|
||||
00287 errors
|
||||
00000 warnings
|
||||
@@ -0,0 +1,112 @@
|
||||
#include "lsfs.h"
|
||||
#include "../main.h"
|
||||
|
||||
struct lsfs_file {
|
||||
long file_id[2];
|
||||
long table_entry_pointer[2];
|
||||
Table_Entry_Kind entry_kind;
|
||||
char* filename;
|
||||
long owner_id;
|
||||
long size[2];
|
||||
long creation_date[2];
|
||||
long access_time[2];
|
||||
long modification_time[2];
|
||||
long number_sector;
|
||||
long table_entry_sector_index[2];
|
||||
long data_pointer[NUM_DATA_POINTERS * 2];
|
||||
};
|
||||
|
||||
int lsfs_disk_read_data_from_file(file, buffer_size, data, offset_to_next_entry)
|
||||
lsfs_file *file;
|
||||
int buffer_size;
|
||||
char *data;
|
||||
long offset_to_next_entry;
|
||||
{
|
||||
int integer_file_size = file->size;
|
||||
int integer_offset = offset_to_next_entry;
|
||||
int integer_datapointer = 0;
|
||||
int data_length = integer_file_size - integer_offset;
|
||||
int amount_read = 0;
|
||||
int amount_to_read = 0;
|
||||
int remaining_offset = offset_to_next_entry;
|
||||
/* printf("READ: buffer_size: %d\n", buffer_size); */
|
||||
/* printf("READ: Data length: %d\n", data_length); */
|
||||
/* printf("READ: Offset length: %d\n", offset_to_next_entry); */
|
||||
|
||||
|
||||
int data_pointer_index = 0; /* start at first data pointer. */
|
||||
|
||||
if (data_length > buffer_size)
|
||||
{
|
||||
data_length = buffer_size;
|
||||
}
|
||||
|
||||
while(data_length > 0) /* We have more to write */
|
||||
{
|
||||
/* printf("READ: Remaing Data length: %d\n", data_length); */
|
||||
if (remaining_offset == 0)
|
||||
{
|
||||
char *tmp_buffer = calloc(DEFAULT_DATA_POINTER_SIZE, SECTOR_SIZE);
|
||||
/* assert(tmp_buffer); */
|
||||
|
||||
if (data_length < (DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE))
|
||||
{
|
||||
amount_to_read = data_length;
|
||||
}
|
||||
else
|
||||
{
|
||||
amount_to_read = (DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE);
|
||||
}
|
||||
/* disk_service_read_data_from_disk(lsfs_sector_offset index, uint32_t number_sector, void* data_buffer) */
|
||||
integer_datapointer = file->data_pointer[data_pointer_index];
|
||||
if (integer_datapointer == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer);
|
||||
memcpy((data + amount_read), tmp_buffer, amount_to_read);
|
||||
data_length -= amount_to_read;
|
||||
amount_read += amount_to_read;
|
||||
data_pointer_index++;
|
||||
/* free(tmp_buffer); */
|
||||
}
|
||||
else if (remaining_offset < (DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE))
|
||||
{
|
||||
char *tmp_buffer = calloc(1, (DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE));
|
||||
/* assert(tmp_buffer); */
|
||||
|
||||
if (data_length < ((DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE) - remaining_offset) )
|
||||
{
|
||||
amount_to_read = data_length;
|
||||
}
|
||||
else
|
||||
{
|
||||
amount_to_read = ((DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE) - remaining_offset);
|
||||
}
|
||||
|
||||
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer);
|
||||
|
||||
memcpy(data, (tmp_buffer + remaining_offset), amount_to_read);
|
||||
data_length -= amount_to_read;
|
||||
amount_read += amount_to_read;
|
||||
remaining_offset -= amount_to_read;
|
||||
|
||||
data_pointer_index++;
|
||||
/* free(tmp_buffer); */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We have to skip a whole data pointer: */
|
||||
remaining_offset -= (DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE);
|
||||
data_pointer_index++;
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
time_t current_time;
|
||||
time ( ¤t_time );
|
||||
file->access_time = current_time;
|
||||
*/
|
||||
return amount_read;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef LSFS_H
|
||||
#define LSFS_H
|
||||
|
||||
typedef struct lsfs_file lsfs_file;
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,111 +1,17 @@
|
||||
// Adress to dump ax, 7C2A
|
||||
// Address to print 7C47
|
||||
//
|
||||
//
|
||||
#include "std_singos/stdio.h"
|
||||
#include "std_singos/stdlib.h"
|
||||
|
||||
#include "std_singos/string.h"
|
||||
#include "driver/disk.h"
|
||||
|
||||
#define SPACE_MBR_RECORD 2048 // Sectors
|
||||
#define SPACE_VBR_RECORD 2048 // Sectors
|
||||
#define SIZE_FSCI_RECORD 1 // Sectors
|
||||
#define DEFAULT_ENTRY_SIZE 1 // Sectors
|
||||
#define SECTOR_SIZE 512 // BYTES
|
||||
#define NUMBER_OF_MBR_PARTITIONS 4
|
||||
#define DEFAULT_FILE_SIZE 4 // This is in sectors
|
||||
#define DEFAULT_DATA_POINTER_SIZE 4 // This is in sectors
|
||||
#define DEFAULT_TABLE_SIZE 16
|
||||
#define NUM_DATA_POINTERS 27
|
||||
|
||||
void dump_ax(input);
|
||||
void print_stack(argument);
|
||||
void print_newline();
|
||||
|
||||
typedef struct Directory_Table Directory_Table;
|
||||
typedef struct Struct_Table_Entry Table_Entry;
|
||||
typedef struct struct_partition_control partition_control;
|
||||
typedef struct File_System_Control_Information FSCI;
|
||||
typedef struct meta_information_format mif;
|
||||
typedef struct tag_record tag_record;
|
||||
typedef struct lsfs_file lsfs_file;
|
||||
typedef struct Parameter_Struct Parameter_Struct;
|
||||
|
||||
typedef enum Table_Entry_Kind
|
||||
{
|
||||
// These are specific values since, is has to corrospond to the implementation in assembly
|
||||
ENTRY_EMPTY = 0,
|
||||
ENTRY_FILE = 1,
|
||||
ENTRY_DIRECTORY = 2,
|
||||
} Table_Entry_Kind;
|
||||
|
||||
typedef enum Service_Action
|
||||
{
|
||||
SERIVCE_LOAD_DISK = 1,
|
||||
SERVICE_FIND_ENTRY = 2,
|
||||
SERIVCE_READ_DATA = 3,
|
||||
SERIVCE_WRITE_DATA = 4,
|
||||
|
||||
} Service_Action;
|
||||
|
||||
struct Struct_Table_Entry
|
||||
{
|
||||
char filename[256];
|
||||
long file_id[2];
|
||||
long file_size[2];
|
||||
void* ext_file_data_low;
|
||||
void* ext_file_data_high;
|
||||
long number_sector_s; // <- Just try to remove the last undercore and compile .
|
||||
short entry_kind;
|
||||
short extra_control_bits1;
|
||||
short extra_control_bits2;
|
||||
short extra_control_bits3;
|
||||
long table_entry_sector_index[2];
|
||||
long data_pointer[NUM_DATA_POINTERS * 2]; // if it is a directory, the first pointer will be to the next table.
|
||||
};
|
||||
|
||||
struct File_System_Control_Information
|
||||
{
|
||||
char filesystem_information[256];
|
||||
long master_table_index[2];
|
||||
long this_partition_offset_on_disk[2];
|
||||
long next_free_sector[2];
|
||||
long next_uniqe_id[2]; // both files and directories gets this.
|
||||
long next_sector_reuse_pointer[2];
|
||||
long last_sector_index_on_partition[2];
|
||||
long maximum_sectors_on_disk[2];
|
||||
long sector_size_on_disk[2];
|
||||
long not_used[48];
|
||||
|
||||
};
|
||||
|
||||
typedef struct Directory_Table
|
||||
{
|
||||
Table_Entry entries[DEFAULT_TABLE_SIZE];
|
||||
|
||||
};
|
||||
|
||||
struct Parameter_Struct
|
||||
{
|
||||
char* path;
|
||||
char* new_path;
|
||||
int buffer_segment;
|
||||
int buffer_address;
|
||||
int buffer_size;
|
||||
int data_length;
|
||||
int byte_offset_into_file;
|
||||
Table_Entry_Kind entry_kind;
|
||||
};
|
||||
/* Adress to dump ax, 7C2A*/
|
||||
/* Address to print 7C47*/
|
||||
/* */
|
||||
/* */
|
||||
#include "main.h"
|
||||
|
||||
int main(selector, pointer_parameter_segment, pointer_parameter_struct)
|
||||
int selector;
|
||||
void* pointer_parameter_segment;
|
||||
void* pointer_parameter_struct;
|
||||
{
|
||||
// selectot should be a "selector" for which disk service
|
||||
// one wnats to use.
|
||||
// 0 should not be used, to try to ensure that a value has been set explicitly.
|
||||
/* selectot should be a "selector" for which disk service*/
|
||||
/* one wnats to use. */
|
||||
/* 0 should not be used, to try to ensure that a value has been set explicitly. */
|
||||
FSCI fsci;
|
||||
|
||||
Service_Action service_action;
|
||||
@@ -177,7 +83,7 @@ void* pointer_parameter_struct;
|
||||
/*
|
||||
What do we need to know:
|
||||
path
|
||||
// Buffer:
|
||||
Buffer:
|
||||
destination_segment
|
||||
destination_address
|
||||
buffer_size
|
||||
@@ -199,4 +105,4 @@ void* pointer_parameter_struct;
|
||||
|
||||
}
|
||||
|
||||
//void load_
|
||||
/* void load_*/
|
||||
@@ -0,0 +1,100 @@
|
||||
#ifndef MAIN_H
|
||||
#define MAIN_H
|
||||
|
||||
#define SPACE_MBR_RECORD 2048 /* Sectors*/
|
||||
#define SPACE_VBR_RECORD 2048 /* Sectors*/
|
||||
#define SIZE_FSCI_RECORD 1 /* Sectors*/
|
||||
#define DEFAULT_ENTRY_SIZE 1 /* Sectors*/
|
||||
#define SECTOR_SIZE 512 /* BYTES*/
|
||||
#define NUMBER_OF_MBR_PARTITIONS 4
|
||||
#define DEFAULT_FILE_SIZE 4 /* This is in sectors*/
|
||||
#define DEFAULT_DATA_POINTER_SIZE 4 /* This is in sectors*/
|
||||
#define DEFAULT_TABLE_SIZE 16
|
||||
#define NUM_DATA_POINTERS 27
|
||||
|
||||
#include "std_singos/stdio.h"
|
||||
#include "std_singos/stdlib.h"
|
||||
|
||||
#include "std_singos/string.h"
|
||||
#include "driver/disk.h"
|
||||
#include "implementation/lsfs.h"
|
||||
|
||||
void dump_ax(input);
|
||||
void print_stack(argument);
|
||||
void print_newline();
|
||||
|
||||
typedef struct Directory_Table Directory_Table;
|
||||
typedef struct Struct_Table_Entry Table_Entry;
|
||||
typedef struct struct_partition_control partition_control;
|
||||
typedef struct File_System_Control_Information FSCI;
|
||||
typedef struct meta_information_format mif;
|
||||
typedef struct tag_record tag_record;
|
||||
typedef struct Parameter_Struct Parameter_Struct;
|
||||
|
||||
typedef enum Table_Entry_Kind
|
||||
{
|
||||
/* These are specific values since, is has to corrospond to the implementation in assembly*/
|
||||
ENTRY_EMPTY = 0,
|
||||
ENTRY_FILE = 1,
|
||||
ENTRY_DIRECTORY = 2,
|
||||
} Table_Entry_Kind;
|
||||
|
||||
typedef enum Service_Action
|
||||
{
|
||||
SERIVCE_LOAD_DISK = 1,
|
||||
SERVICE_FIND_ENTRY = 2,
|
||||
SERIVCE_READ_DATA = 3,
|
||||
SERIVCE_WRITE_DATA = 4,
|
||||
|
||||
} Service_Action;
|
||||
|
||||
struct Struct_Table_Entry
|
||||
{
|
||||
char filename[256];
|
||||
long file_id[2];
|
||||
long file_size[2];
|
||||
void* ext_file_data_low;
|
||||
void* ext_file_data_high;
|
||||
long number_sector_s; /* <- Just try to remove the last undercore and compile . */
|
||||
short entry_kind;
|
||||
short extra_control_bits1;
|
||||
short extra_control_bits2;
|
||||
short extra_control_bits3;
|
||||
long table_entry_sector_index[2];
|
||||
long data_pointer[NUM_DATA_POINTERS * 2]; /* if it is a directory, the first pointer will be to the next table. */
|
||||
};
|
||||
|
||||
struct File_System_Control_Information
|
||||
{
|
||||
char filesystem_information[256];
|
||||
long master_table_index[2];
|
||||
long this_partition_offset_on_disk[2];
|
||||
long next_free_sector[2];
|
||||
long next_uniqe_id[2]; /* both files and directories gets this. */
|
||||
long next_sector_reuse_pointer[2];
|
||||
long last_sector_index_on_partition[2];
|
||||
long maximum_sectors_on_disk[2];
|
||||
long sector_size_on_disk[2];
|
||||
long not_used[48];
|
||||
|
||||
};
|
||||
|
||||
typedef struct Directory_Table
|
||||
{
|
||||
Table_Entry entries[DEFAULT_TABLE_SIZE];
|
||||
|
||||
};
|
||||
|
||||
struct Parameter_Struct
|
||||
{
|
||||
char* path;
|
||||
char* new_path;
|
||||
int buffer_segment;
|
||||
int buffer_address;
|
||||
int buffer_size;
|
||||
int data_length;
|
||||
int byte_offset_into_file;
|
||||
Table_Entry_Kind entry_kind;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -3,6 +3,7 @@ unsigned int global_heap_end = 0;
|
||||
unsigned int global_heap_next = 0;
|
||||
|
||||
void* malloc(num_bytes);
|
||||
void* calloc(number_elements, size);
|
||||
int set_heap_settings(param_start, param_end);
|
||||
unsigned int get_heap_next();
|
||||
|
||||
@@ -19,6 +20,31 @@ int num_bytes;
|
||||
return allocated_pointer;
|
||||
}
|
||||
|
||||
void* calloc(number_elements, size)
|
||||
unsigned int number_elements;
|
||||
unsigned int size;
|
||||
{
|
||||
int i;
|
||||
char* temp_pointer;
|
||||
unsigned int num_bytes = number_elements * size;
|
||||
void* allocated_pointer = global_heap_next;
|
||||
global_heap_next = global_heap_next + num_bytes;
|
||||
if (global_heap_next > global_heap_end)
|
||||
{
|
||||
return 0; /* No more memory */
|
||||
}
|
||||
|
||||
/* Since this is calloc, we set the memory to zero */
|
||||
temp_pointer = allocated_pointer;
|
||||
for (i = 0; i < num_bytes; ++i)
|
||||
{
|
||||
*temp_pointer = 0;
|
||||
temp_pointer++;
|
||||
}
|
||||
|
||||
return allocated_pointer;
|
||||
}
|
||||
|
||||
int set_heap_settings(param_start, param_end)
|
||||
unsigned int param_start;
|
||||
unsigned int param_end;
|
||||
|
||||
+4
-6
@@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
typedef struct Length_String {
|
||||
short dynamic;
|
||||
unsigned int length;
|
||||
@@ -15,7 +14,7 @@ void strcpy (destination, destination_segment, source, source_segment );
|
||||
int strlen (source, source_segment);
|
||||
void memcpy (destination, destination_segment, source, source_segment, num_bytes );
|
||||
|
||||
// Additionals to standard c lib.
|
||||
/* Additionals to standard c lib. */
|
||||
String_Array *string_split_c(string, delim, keep_delim);
|
||||
Length_String *make_length_string(length, chars);
|
||||
Length_String *make_length_string_c(cstring);
|
||||
@@ -92,7 +91,7 @@ int source_segment;
|
||||
mov si, ax
|
||||
mov ax, SOURCE_SEGMENT;
|
||||
mov ds, ax
|
||||
mov cx, 0x050 // TODO(Jørn) Hardcded number of bytes to copy
|
||||
mov cx, 0x050 ;TODO(Jørn) Hardcded number of bytes to copy
|
||||
.label_strcpy_loop:
|
||||
movsb
|
||||
cmp cx, 0x0
|
||||
@@ -186,8 +185,7 @@ char *chars;
|
||||
{
|
||||
|
||||
Length_String *legth_string = malloc(sizeof(Length_String));
|
||||
|
||||
char *copy = malloc(length + 1); // Space for null terminator
|
||||
char *copy = malloc(length + 1); /* Space for null terminator */
|
||||
memcpy(copy, 0x7e0, chars, 0x7e0, length);
|
||||
copy[length] = '\0';
|
||||
|
||||
@@ -272,7 +270,7 @@ char *chars;
|
||||
{
|
||||
|
||||
Length_String *legth_string = malloc(sizeof(Length_String));
|
||||
char *copy = malloc(length + 1); // Space for null terminator
|
||||
char *copy = malloc(length + 1); /* Space for null terminator */
|
||||
memcpy(copy, 0x7e0, chars, 0x7e0, length);
|
||||
copy[length] = '\0';
|
||||
|
||||
|
||||
Reference in new issue
Block a user