kolibrios/programs/develop/libraries/kolibri-libc/samples/tmpdisk_work.c
turbocat 1c24cac315 kolibri-libc:
[include]
 - ksys.h : fixed sruct name
 - string.h: set memcpy, memset, and memove as static for libtcc
 - stdio.h: added sscanf and ungetc
 - stdint.h: added int64 limits
[stdio]
fixed *scanf functions
added ungetc functon
[lib]
 - upated binaries
 - added libtcc.a for tcc optimization
[crt]
 - removed duplicate files
[samples]
 - added fasm libc.obj example
 - updated old examples 




git-svn-id: svn://kolibrios.org@8718 a494cfbc-eb01-0410-851d-a64ba20cac60
2021-05-09 22:12:43 +00:00

57 lines
1.3 KiB
C

#include "stddef.h"
#include <sys/ksys.h>
#include <stdio.h>
#include <stdlib.h>
#define DEV_ADD_DISK 1
#define TMPDISK_SIZE 10 //Mb
#pragma pack(push, 1)
struct{
unsigned disk_size;
unsigned char disk_id;
}tmpdisk_add;
#pragma pack(pop)
char *tmpdisk_res_text[]={
"TmpDisk operation completed successfully",
"Unknown IOCTL code, wrong input/output size...",
"DiskId must be from 0 to 9",
"DiskSize is too large",
"DiskSize is too small, might be too little free RAM",
"Memory allocation failed",
"Unknown error O_o",
0};
int main(){
ksys_drv_hand_t tmpdisk_drv = _ksys_load_driver("tmpdisk");
if(!tmpdisk_drv){
puts("tmpdisk.sys driver not load!");
exit(0);
}else{
puts("tmpdisk.sys driver is load!");
}
tmpdisk_add.disk_size = TMPDISK_SIZE*1024*1024/512;
tmpdisk_add.disk_id = 5;
ksys_ioctl_t ioctl;
ioctl.func_num = DEV_ADD_DISK;
ioctl.handler = tmpdisk_drv;
ioctl.in_data_ptr = &tmpdisk_add;
ioctl.in_data_size = sizeof(tmpdisk_add);
ioctl.out_data_ptr = NULL;
ioctl.out_data_size = 0;
printf("Create '/tmp%u/' disk a %u Mb size...\n", tmpdisk_add.disk_id, TMPDISK_SIZE);
unsigned status =_ksys_work_driver(&ioctl);
if(status<7){
puts(tmpdisk_res_text[status]);
}else{
puts(tmpdisk_res_text[6]);
}
exit(0);
}