3 * Copyright (C) 2007 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
4 * Copyright (C) 2008 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
31 static fd_t
*getbyfd (int id
)
34 for (fd
= fd_list
.next
; fd
!= &fd_list
; fd
= fd
->next
) {
35 if (fd
->id
== (unsigned) id
)
43 int write (unsigned fd
, void *buf
, unsigned len
)
45 fd_t
*d
= getbyfd (fd
);
51 strcpy (pwd
, (char *) env_get ("PWD"));
53 /*partition_t *p = mount_find (pwd);
56 DPRINT ("mount point does not exist !\n");
61 DPRINT ("file not found!\n");
65 char *file
= dir
[d
->index
].name
;
68 DPRINT ("write () -> !file\n");
72 unsigned file_len
= strlen (file
);
74 /* create file when not exist */
75 if (d
->flags
& O_CREAT
) {
76 vfs_touch ((char *) file
, file_len
);
79 memcpy (d
->s
, (char *) buf
, len
);
83 if (!vfs_mmap (file
, file_len
, buf
, len
))
86 DPRINT ("write () - !d->e not implemented - O_APPEND..\n");